fork download
  1. #include <bits/stdc++.h>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <map>
  5.  
  6. #define endl '\n'
  7. #define ll long long
  8. #define ld long double
  9. #define P pair<ll, ll>
  10. using namespace std;
  11.  
  12. int main()
  13. {
  14. ll t;
  15. cin >> t;
  16. while (t--)
  17. {
  18. ll n, m;
  19. cin >> n >> m;
  20. //ll a[n][m], b[n][m];
  21. char a[n + 25][m + 25], b[n + 25][m + 25];
  22. for (ll i = 0; i < n; i++)
  23. cin >> a[i];
  24.  
  25. for (ll i = 0; i < n; i++)
  26. cin >> b[i];
  27. ll dr = 0, dc = 0;
  28. ll errormin = n * m;
  29. //cout << "---\n";
  30. for (dr = 0; dr <= n; dr++)
  31. {
  32. for (dc = 0; dc <= m; dc++)
  33. {
  34. ll error = 0;
  35. for (ll i = 0; i < n; i++)
  36. {
  37. for (ll j = 0; j < m; j++)
  38. {
  39. ll fdr = i + dr;
  40. ll fdc = j + dc;
  41. char temp = '0';
  42. if (fdr >= n || fdc >= m)
  43. temp = '0';
  44. else
  45. temp = b[i + dr][j + dc];
  46. if (a[i][j] != temp)
  47. error++;
  48. }
  49. }
  50. if (error < errormin)
  51. errormin = error;
  52. //cout << dr << " " << dc << " " << error << endl;
  53. }
  54. }
  55. for (dr = 0; dr >= -n; dr--)
  56. {
  57. for (dc = 0; dc >= -m; dc--)
  58. {
  59. ll error = 0;
  60. for (ll i = 0; i < n; i++)
  61. {
  62. for (ll j = 0; j < m; j++)
  63. {
  64. ll fdr = i + dr;
  65. ll fdc = j + dc;
  66. char temp = '0';
  67. if (fdr < 0 || fdc < 0)
  68. temp = '0';
  69. else
  70. temp = b[i + dr][j + dc];
  71. if (a[i][j] != temp)
  72. error++;
  73. // if (dr == -1 && dc == -1 && (a[i][j] != temp))
  74. // {
  75. // cout << i << " " << j << " " << a[i][j] << " " << temp << endl;
  76. // }
  77. }
  78. }
  79. if (error < errormin)
  80. errormin = error;
  81.  
  82. //cout << dr << " " << dc << " " << error << endl;
  83. }
  84. }
  85. // cout << "====";
  86. cout << errormin << endl;
  87. }
  88. }
Runtime error #stdin #stdout 0s 4372KB
stdin
Standard input is empty
stdout
Standard output is empty