a53

expandmat

a53
Mar 1st, 2021
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. ifstream f("expandmat.in");
  5. ofstream g("expandmat.out");
  6. int n,q,cnt[3][3][30];
  7. int64_t p[64];
  8. int main()
  9. {
  10. f>>n>>q;
  11. p[0]=1;
  12. for(int i=1; i<=n; i++)p[i]=p[i-1]*2;
  13. for(; q; q--)
  14. {
  15. int64_t L,C;
  16. char c;
  17. int v;
  18. f>>L>>C>>c;
  19. v=c-'a';
  20. for(int i=n; i>=2; i--)
  21. {
  22. if(L>p[i-1]&&C>p[i-1])
  23. {
  24. L=p[i]+1-L;
  25. C=p[i]+1-C;
  26. }
  27. else if(L>p[i-1])
  28. {
  29. L=L-p[i-1];
  30. v=v+4;
  31. }
  32. else if(C>p[i-1])
  33. {
  34. C=C-p[i-1];
  35. v=v+23;
  36. }
  37. }
  38. v%=26;
  39. cnt[L][C][v]++;
  40. }
  41. int sol=0;
  42. for(int i=1; i<=2; i++)
  43. for(int j=1; j<=2; j++)
  44. {
  45. int mx=cnt[i][j][0];
  46. for(int k=1; k<26; k++)
  47. mx=max(mx,cnt[i][j][k]);
  48. sol+=mx;
  49. }
  50. g<<sol;
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment