Submission #107638

#TimeUsernameProblemLanguageResultExecution timeMemory
107638FiloSanza동굴 (IOI13_cave)C++14
0 / 100
23 ms640 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; void exploreCave(int N) { int pos[N]; memset(pos, 0, sizeof(pos)); vector<int> ans(N, -1); vector<int> idx(N, -1); int cont = 0; int last = tryCombination(pos); while(cont < N){ for(int i=0; i<N && cont<N; i++)if(ans[i] == -1){ pos[i] ^= 1; //cerr << "TOGGLE: " << i << "\n"; //for(auto x : pos) cerr << x << " "; cerr << "\n"; int dist = tryCombination(pos); if(dist == -1){ /*cerr << "OPEN\n";*/ for(int x=0; x<N; x++) ans[x] = pos[x]; cont = N; break; } if(last < dist){ idx[i] = last; ans[i] = pos[i]; ++cont; last = dist; } else if(last > dist){ pos[i] ^= 1; idx[i] = dist; ans[i] = pos[i]; ++cont; } else pos[i] ^= 1; } } cont = 0; for(auto i : idx) cont += i != -1; for(int i=0; i<N && cont < N; i++) if(idx[i] == -1){ pos[i] ^= 1; int dist = tryCombination(pos); idx[i] = dist; pos[i] ^= 1; } answer(ans.data(), idx.data()); }
#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...