제출 #993052

#제출 시각아이디문제언어결과실행 시간메모리
993052vjudge1Cave (IOI13_cave)C++17
0 / 100
169 ms576 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; // #define int long long #define endl '\n' #define F first #define S second #define pb push_back #define all(a) a.begin(),a.end() const int NN=1e6+50000; const int MOD=1e9+7; const int off=(1<<11); #define ask(x) tryCombination(x); void exploreCave(int N){ int S[N],D[N],done[N]; for(int i=0;i<N;i++){ S[i]=D[i]=done[i]=0; } for(int i=0;i<N;i++){ vector<int>vec; for(int j=0;j<N;j++){ if(done[j])continue; S[j]=0; vec.pb(j); } int x=ask(S); if(x>i || x==-1)x=0; else x=1; int l=0,r=vec.size()-1; int ans = 0; while(l<r){ int md=(l+r)/2; for(int j=l;j<=md;j++){ if(done[vec[j]])continue; S[vec[j]]=1; } for(int j=md+1;j<=r;j++){ if(done[vec[j]])continue; S[vec[j]]=0; } int cur=ask(S); if(cur == -1) cur = N+1; if(x==1){ if(cur>i){ r=md; ans = md; } else{ l=md+1; ans=md+1; } } else{ if(cur>i){ l=md+1; ans = md + 1; } else{ r=md; ans=md; } } } D[ans]=i; S[ans]=x; done[ans]=1; } answer(S,D); } // signed main(){ // ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // }
#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...