제출 #1007760

#제출 시각아이디문제언어결과실행 시간메모리
1007760Newtonabc동굴 (IOI13_cave)C++14
51 / 100
94 ms524 KiB
#include "cave.h" #include<bits/stdc++.h> using namespace std; /*int tryCombination(int arr[]){ int ttmp=4; for(int i=0;i<ttmp;i++) cout<<arr[i] <<" "; cout<<"\n"; int s; cin>>s; return s; }*/ void exploreCave(int N) { int arr[N],fix[N],cn[N]; for(int i=0;i<N;i++) arr[i]=fix[i]=cn[i]=0; for(int i=0;i<N;i++){ int l=0,r=N-1; while(l<r){ while(fix[l]) l++; while(fix[r]) r--; int mid=(l+r)/2; for(int j=mid+1;j<=r;j++) if(!fix[j]) arr[j]=-1; for(int j=l;j<=mid;j++) if(!fix[j]) arr[j]=0; int tmp=tryCombination(arr); if(tmp==-1) tmp=INT_MAX; if(tmp>i){ r=mid; if(l==r) fix[l]=1,cn[l]=i; continue; } for(int j=l;j<=mid;j++) if(!fix[j]) arr[j]=1; tmp=tryCombination(arr); if(tmp==-1) tmp=INT_MAX; if(tmp>i){ r=mid; if(l==r) fix[l]=1,cn[l]=i; continue; } for(int j=l;j<=mid;j++) if(!fix[j]) arr[j]=-1; for(int j=mid+1;j<=r;j++) if(!fix[j]) arr[j]=0; tmp=tryCombination(arr); if(tmp==-1) tmp=INT_MAX; if(tmp>i){ l=mid+1; if(l==r) fix[l]=1,cn[l]=i; continue; } l=mid+1; if(l==r) fix[l]=1,cn[l]=i,arr[l]=1; } } /*cout<<endl <<endl <<endl; for(int i=0;i<N;i++) cout<<arr[i] <<" "; for(int i=0;i<N;i++) cout<<cn[i] <<" ";*/ answer(arr,cn); } /*int main(){ exploreCave(4); }*/
#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...