Submission #1316896

#TimeUsernameProblemLanguageResultExecution timeMemory
1316896exoworldgdCave (IOI13_cave)C++20
0 / 100
210 ms524 KiB
#include<bits/stdc++.h>
#include"cave.h"
#define ll long long
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
using namespace std;
void exploreCave(int n){
	int s[n],d[n],v[n+1];
	for(int i=0;i<n;i++)s[i]=0,d[i]=i,v[i]=0;
	auto ok=[&](int x,int r,int f)->bool{
		int t[n];
		for(int i=0;i<n;i++)t[i]=s[i];
		if(f)for(int i=0;i<=r;i++)if(!v[i])t[i]^=1;
		else for(int i=r+1;i<n;i++)if(!v[i])t[i]^=1;
		return tryCombination(t)!=x;
	};
	for(int i=0;i<n;i++){
		int pos=tryCombination(s),lk=0;
		if(pos==i)lk=1;
		int l=0,r=n-1,ans=0,m;
		while(l<=r)m=(l+r)>>1,ok(i,m,lk)?(ans=m,r=m-1):l=m+1;
		s[ans]^=lk,v[ans]=1,d[ans]=i;
	}
	answer(s,d);
}
#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...