Submission #1315837

#TimeUsernameProblemLanguageResultExecution timeMemory
1315837muramasaCave (IOI13_cave)C++20
12 / 100
430 ms532 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; vector<int> filp(int S[],bool valid[],int N,int l,int r){ vector<int> comb(N); for(int i = 0;i < N;i++){ if(l <= i && i <= r){ if(!valid[i])comb[i] = 1 - S[i]; else comb[i] = S[i]; }else comb[i] = S[i]; } return comb; } void exploreCave(int N) { int S[N],D[N]; for(int i = 0;i < N;i++)S[i] = 0; // for(int i = 0;i < N;i++)D[i] = 0; bool valid[N]; for(int i = 0;i < N;i++)valid[i] = 0; for(int i = 0;i < N;i++){ int p = tryCombination(S); int l = 0,r = N - 1,ans = -1; while(l < r){ int m = (l + r)/2; vector<int> comb = filp(S,valid,N,l,m); int Ncomb[N]; for(int j = 0;j < N;j++)Ncomb[j] = comb[j]; int s = tryCombination(Ncomb); if(p == s)l = m + 1; else r = m; } D[l] = i; if(p == i)S[l] = 1 - S[l]; assert(!valid[l]); valid[l] = 1; } answer(S,D); // return; }
#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...