fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. bool ist(int x,int y,int n,int m)
  4. {
  5. return (x>=0 && x<n && y>=0 && y<m);
  6. }
  7. void slv()
  8. {
  9. int n,m;
  10. cin>>n>>m;
  11. int a[n][m];
  12. map<int,int> mp;
  13. set<int> s;
  14. for (int i=0; i<n; i++)
  15. {
  16. for (int j=0; j<m; j++)
  17. {
  18. cin>>a[i][j];
  19. s.insert(a[i][j]);
  20. if (mp[a[i][j]]==0)
  21. mp[a[i][j]]++;
  22. if (ist(i+1,j,n,m) && a[i+1][j]==a[i][j])
  23. {mp[a[i][j]]++;continue;}
  24. if (ist(i,j+1,n,m) && a[i][j+1]==a[i][j])
  25. {mp[a[i][j]]++;continue;}
  26. if (ist(i-1,j,n,m) && a[i-1][j]==a[i][j])
  27. {mp[a[i][j]]++;continue;}
  28. if (ist(i,j-1,n,m) && a[i][j-1]==a[i][j])
  29. {mp[a[i][j]]++;continue;}
  30. }
  31. }
  32. int jg=0,mx=0;
  33. for (auto x:s)
  34. {
  35. mx=max(mx,mp[x]);
  36. jg+=mp[x];
  37. }
  38. cout<<jg-mx<<"\n";
  39. }
  40. int main()
  41. {
  42. ios::sync_with_stdio(0);
  43. cin.tie(0);
  44. int tt;
  45. cin>>tt;
  46. while (tt--)
  47. slv();
  48. }
Success #stdin #stdout 0.01s 5288KB
stdin
6
1 1
1
1 2
2 2
1 2
2 1
2 2
2 2
2 2
2 2
1 1
1 3
2 2
2 2
3 2
stdout
0
0
1
0
1
1