Problem:
Score : 200 points

Problem Statement

Given are two strings S and T.

Let us change some of the characters in S so that T will be a substring of S.

At least how many characters do we need to change?

Here, a substring is a consecutive subsequence. For example, xxx is a substring of yxxxy, but not a substring of xxyxx.

Constraints

The lengths of S and T are each at least 1 and at most 1000.

The length of T is at most that of S.

S and T consist of lowercase English letters.

Input

Input is given from Standard Input in the following format:

S
T

Output

Print the minimum number of characters in S that need to be changed.

Sample Input 1

cabacc
abc

Sample Output 1

1

For example, changing the fourth character a in S to c will match the second through fourth characters in S to T.

Since S itself does not have T as its substring, this number of changes - one - is the minimum needed.

Sample Input 2

codeforces
atcoder

Sample Output 2

6

Solution in C (GCC 9.2.1) (judge verdict: Wrong Answer)


#include<stdio.h>
#include<string.h>
int main(){
char s[1000],t[1000],h[1000];
int sn,tn,i,j,temp=0,n;
char *adrs;
scanf("%s",s);
scanf("%s",t);
for(sn=0;s[sn]!='\0';sn++)
;
for(tn=0;t[tn]!='\0';tn++)
;
//printf("%d\n",tn);
temp = tn;
for(i=0;i<tn;i++){
  for(j=tn;j>i;j--){
    strncpy(h,t+i,j);
    h[j] = '\0';
    adrs = strstr(s+i,h);
  //  printf("%s,%p\n",h,adrs);
    if(adrs){
    //  printf("i%d:j%d->",i,j);
    for(n=0;h[n]!='\0';n++)
    ;
    //printf("%s:%s (%d)=%d\n",s,h,n,tn-n);
      if(temp>=tn-n)
      temp = tn-n;
    }
  }
}
printf("%d",temp);
return 0;
}