Advertisement
nicuvlad76

Untitled

Dec 2nd, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4.  
  5. ifstream fin("cuvinte8.in");
  6. ofstream fout("cuvinte8.out");
  7. int n, k;
  8. int dp[2][10005];
  9. string wrong,cuv;
  10.  
  11. int main()
  12. {
  13. int lenwr, lenac;
  14. fin >> n >> k;
  15. fin >> lenwr >>wrong ;
  16. for (int i = 1; i <= n; i++)
  17. {
  18. fin >> lenac >> cuv;
  19. bool lin = false;
  20. for (int i = 0; i <= 10001; i++)
  21. dp[0][i] = 0;
  22. for (int j = 0; j <= lenac; j++)
  23. dp[1][j] = j;
  24. int x;
  25.  
  26. for (int i = 1; i <= lenwr; i++) {
  27. dp[lin][0] = i;
  28. int mx = max(1 ,i - 2 * k), mn = min(lenac,i + 2 *k);
  29. for (int j = mx; j <=mn; j++)
  30. {
  31. x = 1;
  32. if (wrong[i - 1] == cuv[j - 1])
  33. x = 0;
  34. dp[lin][j] = min({ 1 + dp[!lin][j], 1 + dp[lin][j - 1], x + dp[!lin][j - 1] });
  35. }
  36. lin = !lin;
  37. }
  38. if (dp[!lin][lenac] <= k)
  39. fout << "1\n";
  40. else fout << "0\n";
  41.  
  42. }
  43. fin.close();
  44. fout.close();
  45. return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement