Submission #413914

#TimeUsernameProblemLanguageResultExecution timeMemory
413914cfalas버섯 세기 (IOI20_mushrooms)C++14
0 / 100
1 ms200 KiB
#include "mushrooms.h" #include<bits/stdc++.h> using namespace std; #define mp make_pair #define INF 10000000 #define MOD 1000000007 #define MID ((l+r)/2) #define HASHMOD 2305843009213693951 #define ll long long #define ull unsigned long long #define F first #define S second typedef pair<ll, ll> ii; typedef pair<ii, int> iii; typedef vector<int> vi; typedef vector<ii> vii; typedef map<int, int> mii; #define EPS 1e-6 #define FOR(i,n) for(int i=0;i<((int)(n));i++) #define FORi(i,a,b) for(int i=((int)(a));i<((int)(b));i++) #define FOA(v, a) for(auto v : a) int count_mushrooms(int n) { int ans=1; int x = use_machine({0,1}); if(!x){ ans++; // both are A FORi(i,2,n){ if(i+1<n){ int a = use_machine({0, i, 1, i+1}); if(a==0 || a==3) ans+=2; else if(a==1 || a==2) ans++; i++; } else{ ans+= 1 - use_machine({0,i}); } } } else{ if(n==2) return 1; // 0 is A, 1 is B // query 2, if A then use 0, i, 2, i+1 // if B then use 1, i, 2, i+1 int x2 = use_machine({0,2}); if(!x2) ans++; FORi(i,3,n){ if(i+1<n){ int a = use_machine({1-x2, i, 2, i+1}); if(a==0 || a==3) ans+=2; else if(a==1 || a==2) ans++; i++; } else{ ans+= 1 - use_machine({0,i}); } } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...