Submission #107686

#TimeUsernameProblemLanguageResultExecution timeMemory
107686FiloSanzaCave (IOI13_cave)C++14
100 / 100
1367 ms640 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; void setV(vector<int>& a, const vector<int>& b, int x, int y, int val){ for(int i=x; i<=y; i++) if(b[i] == -1) a[i] = val; } void exploreCave(int N) { vector<int> pos(N, -1); vector<int> ans(N, -1); vector<int> idx(N, -1); for(int i=0; i<N; i++){ //cerr << i << "\n"; int lo = 0, hi = N-1, val = 0, x; setV(pos, ans, lo, hi, val); int dist = tryCombination(pos.data()); if(dist == - 1) dist = N; if(dist < i+1) val = 1, setV(pos, ans, lo, hi, val); while(lo < hi){ int mid = (lo+hi)/2; setV(pos, ans, lo, mid, val^1); int dist = tryCombination(pos.data()); if(dist == -1) dist = N; //cerr << lo << " " << hi << " " << mid << " " << val <<" -> " << dist<< "\n"; if(dist >= i+1){ lo = mid+1; while(ans[lo] != -1) lo++; } else{ hi = mid; while(ans[hi] != -1) hi--; } setV(pos, ans, 0, N-1, val); } //cerr << "\t" << lo << "\n"; pos[lo] = val; idx[lo] = i; ans[lo] = val; } answer(ans.data(), idx.data()); }

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:18:40: warning: unused variable 'x' [-Wunused-variable]
         int lo = 0, hi = N-1, val = 0, x;
                                        ^
#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...