#include #include #include #include #include #include #define MOD 1000000007 #define END printf("\n");return 0; #define QS09(how_data,data) qsort(data,how_data,sizeof(long),(int (*)(const void *,const void *))qsort_09); #define QS90(how_data,data) qsort(data,how_data,sizeof(long),(int (*)(const void *,const void *))qsort_90); #define I(a) long a;scanf("%ld",&a); void input_array(long how_data,long *data); void output_array(long how_data,long *data); void input_array2(long first , long second , long data[][2]); void format_array(long how_data ,long *data,long what); long get_random(long min, long max); long factorial(long n); long fibonacci(long n); int qsort_09(const int *sys1 , const int *sys2); int qsort_90(const int *sys1 , const int *sys2); long sel_max(long a , long b); long sel_min(long a , long b); long array_max(long how_data,long *data); long array_min(long how_data,long *data); long can_DP(long how_data,long *data,long how_can,bool *can); long array_sum(long how_data,long *data); long Leven_dist(char *now , char *target); void prime_fact(long target, long *data); long get_digit(long target); long ncr(long n , long r); long npr(long n , long r); long nhr(long n , long r); long loop1,loop2,loop3,loop4,loop5,i_temp; char c_temp; typedef struct{ long from; long to; long omomi; } wdg; //WeightedDirectedGraph long BellmanFord(long how_tyouten,long how_hen,long start_ten,long goal_ten,wdg hen_data[]); int main(void){ char S[1001],T[1001]; scanf("%d %d\n"); scanf("%s\n%s",S,T); printf("%d",Leven_dist(S,T)); END; } void input_array(long how_data,long *data){ long loop; for(loop=0;loopb)return a; return b; } long sel_min(long a,long b){ if(a>b)return b; return a; } long can_DP(long how_data,long *data,long how_can,bool *can){//Typical DP Contest A //data内で組み合わせられる和をcanに0 or 1で入れる //返り値はパターン数 long loopA,loopB; long ret=0; for(loopA=0;loopA=0;loopB--){ if(can[loopB]==1 && loopB+data[loopA]data[loop])ret=data[loop]; } return ret; } long array_sum(long how_data,long *data){ long ret=0; long loop; for(loop=0;loop=sqrt(moto_target)+100){ data[loopB]=target; target=1; break; } if(target%loopA==0){ data[loopB]=loopA; target/=loopA; loopB++; break; } } } return ; } long get_digit(long target){ return (long)(log10(target)+1); } long ncr(long n , long r){ //パスカルの三角形 long loopA,loopB; long pascal[100][102]={{0}}; pascal[1][0]=1; pascal[1][1]=1; for(loopA=2;loopA<100;loopA++){ pascal[loopA][0]=1; for(loopB=1;loopB