# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
308290 | 2020-09-30T20:23:37 Z | dekanycsaba | Counting Mushrooms (IOI20_mushrooms) | C++14 | 2 ms | 256 KB |
#include "mushrooms.h" #include<vector> #include<iostream>; using namespace std; int aszam=0; int bszam=0; int eredeti=0; vector<int> A; vector<int> B; int count_mushrooms(int n) { std::vector<int> m; int c1,c2; A.push_back(0); aszam++; if(n==2) { m={0,1}; c1=use_machine(m); if(c1==0) { aszam=2; } else{ aszam=1; } } else{ for(int i=1;i<=2;i++) { m.push_back(0); m.push_back(i); c1=use_machine(m); if(c1==0) { A.push_back(i); aszam++; } else{ B.push_back(i); bszam++; } m.clear(); } } int tartunk=2; if(aszam>bszam) { while(tartunk<=n-1 && tartunk<=200) { tartunk++; if(tartunk==n-1) { m.push_back(A[0]); m.push_back(tartunk); m.push_back(A[1]); c1=use_machine(m); if(c1>0) { B.push_back(tartunk); bszam++; } else{ A.push_back(tartunk); aszam++; } m.clear(); } else if(tartunk<n-1 && tartunk<=200){ m.push_back(A[0]); m.push_back(tartunk); m.push_back(A[1]); tartunk++; m.push_back(tartunk); c1=use_machine(m); if(c1==0) { aszam++; aszam++; A.push_back(tartunk-1); A.push_back(tartunk); } else if(c1==1) { aszam++; bszam++; A.push_back(tartunk-1); B.push_back(tartunk); } else if(c1==2) { aszam++; bszam++; B.push_back(tartunk-1); A.push_back(tartunk); } else{ bszam++; bszam++; B.push_back(tartunk-1); B.push_back(tartunk); } m.clear(); } } } else{ while(tartunk<=n-1 && tartunk<=200) { tartunk++; if(tartunk==n-1) { m.push_back(B[0]); m.push_back(tartunk); m.push_back(B[1]); c1=use_machine(m); if(c1>0) { A.push_back(tartunk); aszam++; } else{ B.push_back(tartunk); bszam++; } m.clear(); } else if(tartunk<n-1 && tartunk<=200){ m.push_back(B[0]); m.push_back(tartunk); m.push_back(B[1]); tartunk++; m.push_back(tartunk); c1=use_machine(m); if(c1==0) { bszam++; bszam++; B.push_back(tartunk-1); B.push_back(tartunk); } else if(c1==1) { bszam++; aszam++; B.push_back(tartunk-1); A.push_back(tartunk); } else if(c1==2) { aszam++; bszam++; A.push_back(tartunk-1); B.push_back(tartunk); } else{ aszam++; aszam++; A.push_back(tartunk-1); A.push_back(tartunk); } m.clear(); } } } if(tartunk<n) { tartunk=200; if(aszam>bszam) { eredeti=aszam; while(tartunk!=n-1) { c2=tartunk; if(n-1-tartunk<eredeti) { for(int i=0;i<n-1-c2;i++) { m.push_back(A[i]); tartunk++; m.push_back(tartunk); } c1=use_machine(m); if(c1%2==1) { bszam=bszam+1+(c1-1)/2; aszam=n-1-1-c2-(c1-1)/2; } else{ bszam=bszam+c1/2; aszam=n-1-c2-c1/2; } m.clear(); } else{ for(int i=0;i<eredeti;i++) { m.push_back(A[i]); tartunk++; m.push_back(tartunk); } c1=use_machine(m); if(c1%2==1) { bszam=bszam+1+(c1-1)/2; aszam=n-1-1-c2-(c1-1)/2; } else{ bszam=bszam+c1/2; aszam=n-1-c2-c1/2; } m.clear(); } } } else{ eredeti=bszam; while(tartunk!=n-1) { c2=tartunk; if(n-1-tartunk<eredeti) { for(int i=0;i<n-1-c2;i++) { m.push_back(B[i]); tartunk++; m.push_back(tartunk); } c1=use_machine(m); if(c1%2==1) { aszam=aszam+1+(c1-1)/2; bszam=n-1-1-c2-(c1-1)/2; } else{ aszam=aszam+c1/2; bszam=n-1-c2-c1/2; } m.clear(); } else{ for(int i=0;i<eredeti;i++) { m.push_back(B[i]); tartunk++; m.push_back(tartunk); } c1=use_machine(m); if(c1%2==1) { aszam=aszam+1+(c1-1)/2; bszam=n-1-1-c2-(c1-1)/2; } else{ aszam=aszam+c1/2; bszam=n-1-c2-c1/2; } m.clear(); } } } } return aszam; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 256 KB | Output is correct |
2 | Correct | 0 ms | 256 KB | Output is correct |
3 | Correct | 1 ms | 256 KB | Output is correct |
4 | Correct | 1 ms | 256 KB | Output is correct |
5 | Correct | 1 ms | 256 KB | Output is correct |
6 | Incorrect | 2 ms | 256 KB | Answer is not correct. |
7 | Halted | 0 ms | 0 KB | - |