Submission #216212

#TimeUsernameProblemLanguageResultExecution timeMemory
216212MODDICave (IOI13_cave)C++14
0 / 100
425 ms504 KiB
#include "cave.h" #include <bits/stdc++.h> #define ll long long #define pii pair<int,int> #define pll pair<ll, ll> #define vi vector<int> #define vl vector<ll> #define vll vector<pll> #define vii vector<pii> using namespace std; void exploreCave(int n){ int door[n], guess[n], status[n]; memset(door,-1,sizeof(door)); for(int i = 0; i < n; i++){ int before_swap = tryCombination(status); int l = 0, r = n - 1; while(l <= r){ bool ok = false; int mid = (r + l) / 2; for(int i = 0; i < n; i++){ if(i >= l && i <= mid){ if(door[i] != -1) guess[i] = status[i]; else{ guess[i] = !status[i]; ok = true; } } else guess[i] = status[i]; } int K = before_swap; if(ok) K = tryCombination(guess); if(before_swap == i){ if(K > i || K == -1) r = mid; else l = mid + 1; } else{ if(K == i) r = mid; else l = mid + 1; } } door[l] = i; if(before_swap == i) status[l] = !status[l]; } answer(status,door); }
#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...