Advertisement
osipyonok

183

Jun 2nd, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. // nm
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. #define max(a,b) ((a)>(b)?(a):(b))
  6. #define min(a,b) ((a)<(b)?(a):(b))
  7.  
  8. char x[200],y[200];
  9. int b[200][200];
  10. int nx,ny,i,j,k,m,n;
  11.  
  12. main(){
  13. scanf("%s%s",x,y);
  14. memset(b,0,sizeof(b));
  15. nx = strlen(x); ny = strlen(y);
  16. for (i=0;i<nx;i++) {
  17. for (j=0;j<ny;j++) {
  18. if (x[i] == y[j]) b[i+1][j+1] = b[i][j]+1;
  19. else b[i+1][j+1] = max(b[i][j+1], b[i+1][j]);
  20. }
  21. }
  22. k = min(nx,ny);
  23. m = b[nx][ny];
  24. n = max(nx,ny) - m;
  25. //printf("%d %d %d\n",k,m,n);
  26. for (i=0;n;i++) {
  27. n -= min(n,(n+m)/2);
  28. m += min(n+m,k-m);
  29. //printf("%d %d %d\n",k,m,n);
  30. }
  31. printf("%d\n",i>1?i:1);
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement