Guest User

Untitled

a guest
Dec 29th, 2019
2,078
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define ll long long
  6. #define mp make_pair
  7.  
  8. int main() {
  9. ios_base::sync_with_stdio(0);
  10. cin.tie(nullptr);
  11.  
  12. int k;
  13. cin>>k;
  14. int n = 1<<k;
  15. vector<vector<ll>> a(n, vector<ll>(n));
  16. for (int i = 0; i<n; i++)
  17. for (int j = 0; j<n; j++) cin>>a[i][j];
  18.  
  19. int t;
  20. cin>>t;
  21. vector<pair<int, int>> F(t);
  22. for (int i = 0; i<t; i++) cin>>F[i].first>>F[i].second;
  23. vector<pair<int, int>> V;
  24. auto key = F[0];
  25. for (auto it: F)
  26. {
  27. V.push_back(mp(it.first - key.first, it.second - key.second));
  28. }
  29. for (int iteration = 0; iteration<k; iteration++)
  30. {
  31. vector<vector<ll>> new_grid(n, vector<ll>(n));
  32. for (int i = 0; i<n; i++)
  33. for (int j = 0; j<n; j++)
  34. {
  35. for (auto it: V) new_grid[i][j]^=a[(i+n-it.first)%n][(j+n-it.second)%n];
  36. }
  37. a = new_grid;
  38. for (int i = 0; i<t; i++)
  39. {
  40. V[i].first = (V[i].first*2)%n;
  41. V[i].second = (V[i].second*2)%n;
  42. }
  43. }
  44. int cnt = 0;
  45. for (int i = 0; i<n; i++)
  46. for (int j = 0; j<n; j++) if (a[i][j]) cnt++;
  47. cout<<cnt;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment