제출 #216214

#제출 시각아이디문제언어결과실행 시간메모리
216214MODDICave (IOI13_cave)C++14
13 / 100
534 ms508 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 j = 0; j < n; j++){ if(j >= l && j <= mid){ if(door[j] != -1) guess[j] = status[j]; else{ guess[j] = !status[j]; ok = true; } } else guess[j] = status[j]; } 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...