Submission #441136

#TimeUsernameProblemLanguageResultExecution timeMemory
441136lLab_Cave (IOI13_cave)C++14
13 / 100
39 ms65540 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; int n; int sol(int A[], int s, int e, int tar){ if(s>e) return -1; int B[n]; int mid = (s+e)/2; for(int i=0;i<n;++i){ B[i] = A[i]; } for(int i=mid;i<e;++i){ B[i] = (B[i]+1)%2; } int res = tryCombination(B); if(s==e){ if(res > tar || res == -1){ return s; }else{ return -1; } } if(res > tar || res == -1){ return sol(A, mid, e, tar); }else{ return max(sol(A, mid, e, tar),sol(A, s, mid-1, tar)); } } void exploreCave(int N) { n = N; int B[N]; for(int i=0;i<N;++i){ B[i] = 0; } int res = 0; while(res != -1){ res = tryCombination(B); if(res == -1) break; int p = sol(B,0,N-1,res); B[p] = (B[p]+1)%2; } int door[N]; for(int i=0;i<N;++i){ B[i] = (B[i]+1)%2; door[i] = tryCombination(B); B[i] = (B[i]+1)%2; } answer(B,door); }
#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...