제출 #400204

#제출 시각아이디문제언어결과실행 시간메모리
400204Jasiekstrz동굴 (IOI13_cave)C++17
100 / 100
370 ms560 KiB
#include<bits/stdc++.h>
#include "cave.h"
#define fi first
#define se second
using namespace std;
const int NN=5e3;
int pos[NN+10];
int door[NN+10];
bool vis[NN+10];
void rev(int l,int r)
{
	for(int i=l;i<r;i++)
	{
		if(!vis[i])
			pos[i]=!pos[i];
	}
	return;
}
void exploreCave(int N)
{
	for(int i=0;i<N;i++)
	{
		if(tryCombination(pos)!=i)
			rev(0,N);
		int bg=0,en=N-1;
		while(bg<en)
		{
			int mid=(bg+en+1)/2;
			rev(bg,mid);
			int tmp=tryCombination(pos);
			rev(bg,mid);
			if(tmp!=i)
				en=mid-1;
			else
				bg=mid;
		}
		pos[bg]=!pos[bg];
		vis[bg]=true;
		door[bg]=i;
	}
	answer(pos,door);
	return;
}
#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...