fork download
  1. /*
  2.  
  3.   (\./) (\./) (\./)
  4.   ( o.o ) ( o.o ) ( o.o )
  5.   > ^ < > ^ < > ^ <
  6.   /|"|\ /|"|\ /|"|\
  7.  
  8.   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  9.   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  10.   @@@@@@@@@@"" ""@@@@@@@@@@@@@
  11.   @@@@@@@@@ @@@@@@@@@@@@
  12.   @@@@@@@@@@, ,@@@@@@@@@@@@@
  13.   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  14.   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  15.  
  16. */
  17.  
  18. #include<bits/stdc++.h>
  19. using namespace std;
  20.  
  21. #define int long long
  22. #define ll long long
  23. #define ld long double
  24. #define pii pair<int, int>
  25. #define pll pair<ll, ll>
  26. #define vi vector<int>
  27. #define vll vector<ll>
  28. #define vpii vector<pii>
  29. #define vvi vector<vector<int>>
  30. #define sz(x)((int)(x).size())
  31. #define all(x)(x).begin(),(x).end()
  32. #define rall(x)(x).rbegin(),(x).rend()
  33. #define pb push_back
  34. #define mp make_pair
  35. #define ff first
  36. #define ss second
  37.  
  38. #define joldi ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
  39. #define ha cout << "YES\n"
  40. #define na cout << "NO\n"
  41. #define nl cout << "\n"
  42. #define sesh return 0
  43.  
  44. #ifndef ONLINE_JUDGE
  45. #define debug(x) cerr << #x << " = " << x << "\n"
  46. #define debugv(v) cerr << #v << " = "; for(auto x : v) cerr << x << " "; cerr << "\n"
  47. #else
  48. #define debug(x)
  49. #define debugv(v)
  50. #endif
  51.  
  52. const int MOD = 1e9 + 7;
  53. const int INF = 1e18;
  54. const double PI = acos(-1.0);
  55.  
  56. // inline int setBit(int n, int pos) { return n |(1LL << pos); }
  57. // inline int clearBit(int n, int pos) { return n & ~(1LL << pos); }
  58. // inline int toggleBit(int n, int pos) { return n ^(1LL << pos); }
  59. // inline bool checkBit(int n, int pos) { return n &(1LL << pos); }
  60. // inline int countSetBits(int n) { return __builtin_popcountll(n); }
  61. // inline int getLSB(int n) { return n & -n; }
  62. // inline int clearLSB(int n) { return n &(n - 1); }
  63.  
  64. // inline int add(int a, int b, int mod = MOD) { return(a + b) % mod; }
  65. // inline int sub(int a, int b, int mod = MOD) { return(a - b + mod) % mod; }
  66. // inline int mul(int a, int b, int mod = MOD) { return(a*b) % mod; }
  67. // inline int power(int a, int b, int mod = MOD)
  68. // {
  69. // int res = 1;
  70. // while(b) {
  71. // if(b & 1) res = mul(res, a, mod);
  72. // a = mul(a, a, mod);
  73. // b >>= 1;
  74. // }
  75. // return res;
  76. // }
  77. // inline int inv(int a, int mod = MOD) { return power(a, mod - 2, mod); }
  78.  
  79. // template<typename T> void max_self(T& a, T b) { a = max(a, b); }
  80. // template<typename T> void min_self(T& a, T b) { a = min(a, b); }
  81. // template<typename T> void sortv(vector<T>& v) { sort(all(v)); }
  82. // template<typename T> void revv(vector<T>& v) { reverse(all(v)); }
  83.  
  84. void readv(vi& v, int n) { v.resize(n); for(int i = 0; i < n; i++) cin >> v[i]; }
  85. void readvp(vpii& v, int n) { v.resize(n); for(int i = 0; i < n; i++) cin >> v[i].ff >> v[i].ss; }
  86.  
  87. void FreePalestine() {
  88. int purngre = 0;
  89. int n, m;
  90. cin >> n >> m;
  91. vvi mat(n, vi(m));
  92. vi r(n);
  93. vi c(m);
  94. for(int i = 0; i < n; i++) {
  95. for(int j = 0; j < m; j++) {
  96. cin >> mat[i][j];
  97. }
  98. }
  99. int x = 0;
  100. for(int i = 0; i < n; i++) {
  101. for(int j = 0; j < m; j++) {
  102. x ^= mat[i][j];
  103. }
  104. r[i] = x;
  105. x = 0;
  106. }
  107. x = 0;
  108. for(int j = 0; j < m; j++) {
  109. for(int i = 0; i < n; i++) {
  110. x ^= mat[i][j];
  111. }
  112. c[j] = x;
  113. x = 0;
  114. }
  115.  
  116. int totalDanger = 0;
  117. for(int i = 0; i < n; i++) {
  118. totalDanger += r[i];
  119. }
  120. for(int j = 0; j < m; j++) {
  121. totalDanger += c[j];
  122. }
  123.  
  124. int ans = LLONG_MAX;
  125.  
  126.  
  127. for(int i = 0; i < n; i++) {
  128. for(int j = 0; j < m; j++) {
  129. ans = min(totalDanger + (r[i]^c[j]) - (r[i] + c[j]), ans);
  130. // cout << totalDanger << " " << r[i] + c[j] << " " << (r[i]^c[j]) << endl;
  131. // cout << endl;
  132. }
  133. }
  134.  
  135. cout << ans << endl;
  136. }
  137.  
  138. int32_t main() {
  139.  
  140. joldi;int tc = 1;
  141.  
  142. cin >> tc;
  143.  
  144. while(tc--) {FreePalestine();}sesh;
  145. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
9223372036854775807