# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
304451 | 2020-09-21T11:19:15 Z | arnold518 | Counting Mushrooms (IOI20_mushrooms) | C++14 | 1 ms | 256 KB |
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAXN = 2e4; const int SQ = 2; int N; int query(vector<int> V) { return use_machine(V); } int count_mushrooms(int _N) { N=_N; vector<int> A, B; A.push_back(0); int p, ans=0; for(p=1; p<N && A.size()<=SQ && B.size()<=SQ; p++) { if(query({0, p})) B.push_back(p); else A.push_back(p); } ans=A.size(); //printf("%d %d\n", p, A.size()); if(A.size()>=SQ) { while(p<N) { int i, j; vector<int> V; for(j=0; p<N && j<SQ; p++, j++) { V.push_back(A[j]); V.push_back(p); } V.push_back(A[j]); ans+=V.size()/2-query(V)/2; } } else { while(p<N) { int i, j; vector<int> V; for(j=0; p<N && j<SQ; p++, j++) { V.push_back(B[j]); V.push_back(p); } V.push_back(B[j]); ans+=query(V)/2; } } return ans; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 256 KB | Output is correct |
2 | Correct | 0 ms | 256 KB | Output is correct |
3 | Incorrect | 1 ms | 256 KB | Duplicate value 0 in the query array. |
4 | Halted | 0 ms | 0 KB | - |