Advertisement
a53

cuvinte8

a53
Mar 7th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. #include <cstdio>
  2. #include <cstring>
  3. #define NMAX 10000
  4. #define KMAX 30
  5. #define INF 667
  6. using namespace std;
  7. int A[2][NMAX+KMAX];
  8. int M, K, L1, L2;
  9. char s1[NMAX+KMAX+1],s2[NMAX+KMAX+1];
  10.  
  11. int min(int a,int b)
  12. {
  13. if(a<b)
  14. return a;
  15. return b;
  16. }
  17.  
  18. int max(int a,int b)
  19. {
  20. if(a>b)
  21. return a;
  22. return b;
  23. }
  24.  
  25. int main()
  26. {
  27. int t,i,j,v=0,n=1,pl,total=0;
  28. freopen("cuvinte8.in","r",stdin);
  29. scanf("%d %d",&M,&K);
  30. scanf("%d %s",&L1,s1+1);
  31. freopen("cuvinte8.out","w",stdout);
  32. for(t=0;t<M;++t)
  33. {
  34. scanf("%d %s",&L2,s2+1);
  35. for(i=0;i<=K;++i)
  36. A[v][i]=i;
  37. A[v][K+1]=INF;
  38. for(i=1;i<=L2;++i)
  39. {
  40. pl=min(i+K+2,L1+1);
  41. if(i-K-2>=0)
  42. A[n][i-K-2]=INF;
  43. else
  44. A[n][0]=i;
  45. for(j=max(1,i-K-1);j<pl;++j)
  46. if(s1[j]==s2[i])
  47. A[n][j]=A[v][j-1];
  48. else
  49. A[n][j]=min(A[v][j],A[v][j-1]),A[n][j]=min(A[n][j],A[n][j-1])+1;
  50. A[n][pl]=INF;
  51. v^=1;
  52. n^=1;
  53. }
  54. printf("%d\n",(A[v][L1]<=K));
  55. }
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement