| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1359660 | timmytimtam | Cave (IOI13_cave) | C++20 | 119 ms | 572 KiB |
#include "cave.h"
#include <vector>
using namespace std;
void exploreCave(int N) {
//switch that controls the ith door,correct orientation of it
vector<pair<int,int>> known;
int guess[N];
for(int i = 0;i < N;i++){
for(int i = 0;i < N;i++) guess[i] = 0;
for(auto x: known){
guess[x.first] = x.second;
}
int orient;
if(tryCombination(guess) > i){
orient = 0;
}else{
orient = 1;
}
int l = 0,r = N-1;
while(l < r){
int mid = l+(r-l)/2;
for(int i = 0;i < N;i++) guess[i] = !orient;
for(int i = l;i <= mid;i++){
guess[i] = orient;
}
for(auto x: known){
guess[x.first] = x.second;
}
int res = tryCombination(guess);
if(res > i || res == -1){
r = mid;
}else{
l = mid+1;
}
}
//now l == r
known.push_back({l,orient});
}
int ans1[N],ans2[N];
for(int i = 0;i < N;i++){
ans1[known[i].first] = known[i].second;
ans2[known[i].first] = i;
}
answer(ans1,ans2);
}
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
