Submission #233759

#TimeUsernameProblemLanguageResultExecution timeMemory
233759dCoding동굴 (IOI13_cave)C++14
13 / 100
18 ms768 KiB
#include <bits/stdc++.h> #include "cave.h" #define ll long long int #define ld long double #define pb push_back #define mp make_pair #define pii pair<int,int> #define pll pair<ll,ll> #define F first #define S second #define all(x) (x).begin(),(x).end() #define SZ(x) ((int)(x).size()) #define MS(x,a) memset((x),(a),sizeof(x)) #define F0R(i,n) for(auto (i) = 0; (i) < (n); (i)++) #define FOR(i,a,b) for(auto (i) = (a); (i) <= (b); (i)++) #define ROF(i,a,b) for(auto (i) = (a); (i) >= (b); (i)--) using namespace std; /* int tryCombination(int s[]) { cout << "combo: "; F0R(i,4) cout << s[i] << " "; cout << endl; int x; cin >> x; return x; } void answer(int s[],int d[]) { cout << "s = "; F0R(i,4) cout << s[i] << " "; cout << endl; cout << "d = "; F0R(i,4) cout << d[i] << " "; cout << endl; } */ void exploreCave(int n) { int s[n] = {},d[n] = {}; int sw[n] = {},fixed[n] = {}; set<pair<pii,int>> notdone; F0R(i,n)notdone.insert(mp(mp(0,n-1),i)); int cur = tryCombination(s); while(cur != -1 && !notdone.empty()) { int ele = notdone.begin()->S; int lower = notdone.begin()->F.F; int upper = notdone.begin()->F.S; notdone.erase(notdone.begin()); s[ele] ^= 1; int now = tryCombination(s); if(now == -1) { fixed[ele] = true; sw[ele] = s[ele]; d[ele] = cur; break; } else if(now == cur) { lower = cur+1; notdone.insert(mp(mp(lower,upper),ele)); } else { fixed[ele] = true; s[ele] ^= 1; sw[ele] = s[ele]; d[ele] = now; } } F0R(i,n) { if(!fixed[i]) { s[i] ^= 1; int now = tryCombination(s); s[i] ^= 1; sw[i] = s[i]; d[i] = now; fixed[i] = true; } } answer(sw,d); } /* int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); exploreCave(4); } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...