제출 #311658

#제출 시각아이디문제언어결과실행 시간메모리
311658saarang123동굴 (IOI13_cave)C++14
13 / 100
33 ms384 KiB
#include "cave.h" void exploreCave(int n) { int a[n], s[n], d[n]; for(int i = 0; i < n; i++) a[i] = 0, s[i] = 0, d[i] = -1; int x = tryCombination(a); while(x != -1) { int id; int mn = 0, mx = n; while(mn < mx) { int mid = (mn + mx) >> 1; //cout << "Binsearch: " << mn << " " << mid << " " << mx << endl; for(int i = mn; i <= mid; i++) if(d[i] == -1) a[i] ^= 1; int k = tryCombination(a); for(int i = mn; i <= mid; i++) if(d[i] == -1) a[i] ^= 1; if(k != x) mx = mid; else mn = mid + 1; } id = mn; //cout << "Binsearch end: " << id << " " << x << endl; cout << endl; d[id] = x; a[id] ^= 1; x = tryCombination(a); } for(int i = 0; i < n; i++) s[i] = a[i]; //answer(s, d); for(int i = 0; i < n; i++) { if(d[i] != -1) continue; s[i] ^= 1; d[i] = tryCombination(s); s[i] ^= 1; } answer(s, d); }
#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...