제출 #79982

#제출 시각아이디문제언어결과실행 시간메모리
79982giorgikobCave (IOI13_cave)C++14
12 / 100
241 ms644 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);
		bool k=false;//daxuruli
		if(x==-1 || x>i)k=true;//ghia 
		int L=i,R=N-1,ind=0;
		while(L<=R)
		{
			int mid=(L+R)/2;
			for(int j=L;j<=mid;j++)
			if(fix[j]==0)
			S[j]=1-S[j];
			
			x=tryCombination(S);
			bool w=false;//daxuruli
			if(x==-1 || x>i)
			w=true;//ghia
			
			if(k!=w)
			R=mid-1,ind=mid;
			else
			L=mid+1;
			k=w;
		}
		ans1[ind]=i;fix[ind]=1;
		(k==true)?ans[ind]=S[i]:ans[ind]=1-S[i];
	}
	
	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...