Submission #73191

#TimeUsernameProblemLanguageResultExecution timeMemory
73191TuGSGeReLCave (IOI13_cave)C++14
12 / 100
703 ms640 KiB
#include "cave.h"
#include<bits/stdc++.h>
#define ll int
#define mp make_pair
#define pub push_back
#define pob pop_back
#define ss second
#define ff first
#define ext exit(0)
using namespace std;
ll i,j,ans[5001],pos[5001],ask[5001],k,l,r,lol,lel;
bool boo[5001];
vector<ll>v;
void exploreCave(int n){
	memset(boo,0,sizeof boo);
	for(i=0;i<n;i++){
		v.clear();
		for(j=0;j<n;j++){
			if(boo[j]==0) ask[j]=0,v.pub(j);
			else ask[j]=ans[j];
		}
		k=tryCombination(ask);
		if(k==-1 || k>i) lel=ask[i];
		else lel=1-ask[i];
		l=0,r=v.size()-1;
		lol=v.size()-1;
		while(l<=r){
			ll mid=(l+r)/2;
			for(j=0;j<v.size();j++){
				if(j<=mid){
					ask[v[j]]=lel;
				}
				else{
					ask[v[j]]=1-lel;
				}
			}
			k=tryCombination(ask);
			if(k==-1 || k>i){
				lol=mid;
				r=mid-1;
			}
			else l=mid+1;
		}
		pos[v[lol]]=i;
		ans[v[lol]]=lel;
		boo[i]=1;
	}
	answer(ans,pos);
}

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:29:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(j=0;j<v.size();j++){
            ~^~~~~~~~~
#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...