fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int simulategame(int rightshell, vector<int>a, vector<int>b, vector<int>g){
  4. int points=0;
  5. int aa,bb,cc;
  6. aa=0;bb=0; cc=0;
  7. if(rightshell==1){
  8. aa=1;
  9. }
  10. else if(rightshell==2){
  11. bb=1;
  12. }
  13. else{
  14. cc=1;
  15. }
  16. for(int i=1; i<=a.size(); i++){
  17. int swap1, swap2, guessed;
  18. swap1=a[i-1]; swap2=b[i-1]; guessed=g[i-1];
  19. if(swap1==1){
  20. if(swap2==2){
  21. swap(aa,bb);
  22. }
  23. if(swap2==3){
  24. swap(aa,cc);
  25. }
  26. }
  27. else if(swap1==2){
  28. if(swap2==1){
  29. swap(aa,bb);
  30. }
  31. if(swap2==3){
  32. swap(bb,cc);
  33. }
  34. }
  35. else{
  36. if(swap2==1){
  37. swap(aa,bb);
  38. }
  39. if(swap2==2){
  40. swap(bb,cc);
  41. }
  42. }
  43. if(guessed==1){
  44. if(aa==1){
  45. points++;
  46. }
  47. }
  48. else if(guessed==2){
  49. if(bb==1){
  50. points++;
  51. }
  52. }
  53. else{
  54. if(cc=1){
  55. points++;
  56. }
  57. }
  58. }
  59. return points;
  60. }
  61. int main() {
  62. int n; cin>>n;
  63. int nn; nn=n;
  64. vector<int>a,b,g;
  65. while(nn--){
  66. int x,y,z;
  67. cin>>x>>y>>z;
  68. a.push_back(x);
  69. b.push_back(y);
  70. g.push_back(z);
  71. }
  72. cout<<max(max(simulategame(1,a,b,g),simulategame(2,a,b,g)),simulategame(3,a,b,g));
  73. return 0;
  74. }
Success #stdin #stdout 0.01s 5324KB
stdin
3
1 2 1
3 2 1
1 3 1
stdout
2