제출 #81338

#제출 시각아이디문제언어결과실행 시간메모리
81338anaonoprishviliCave (IOI13_cave)C++14
100 / 100
442 ms692 KiB
#include "cave.h"
#include<bits/stdc++.h>
int ans[50005],ans1[50005],s[50005],fix[50005];
void exploreCave(int N)
{
    for(int i=0; i<N; i++)
    {
    	for(int j=0;j<N;j++) if(fix[j]==1) s[j]=ans[j];	else s[j]=0;
		int x=tryCombination(s);
	    int k=0;
		if(x==-1 || x>i) k=1; 
		int t=k, l=0, r=N-1, p=0;
		while(l<=r)
		{
			int m=(l+r)/2;
			for(int j=l;j<=m;j++)
			if(fix[j]==0) s[j]=1-s[j];			
			x=tryCombination(s);
		    int c=0;
			if(x==-1 || x>i) c=1;			
			if(k!=c) r=m-1, p=m;
			else l=m+1;
			k=c;
		}
		ans1[p]=i; fix[p]=1;
		if (t==1) ans[p]=0; else ans[p]=1;
	}
	answer(ans,ans1);
}
#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...