Submission #225275

#TimeUsernameProblemLanguageResultExecution timeMemory
225275kshitij_sodaniLibrary (JOI18_library)C++17
0 / 100
486 ms516 KiB
#include <iostream>
#include <bits/stdc++.h>
#include "library.h"
using namespace std;

#define pb push_back
typedef long long llo;
#define a first
#define b second
int n;
vector<int> aa;
vector<int> bb;
/*void Answer(vector<int> cc){
	for(auto j:cc){
		cout<<j<<" ";
	}
	cout<<endl;
}
int Query(vector<int> cc){
	for(auto j:cc){
		cout<<j<<" ";
	}
	cout<<endl;
	int xx;
	cin>>xx;
	return xx;
}*/
int solve(int ind,int l,int r){
	//cout<<l<<" "<<r<<endl;
	if(l==r){
		for(int i=0;i<n;i++){

			if((ind==i or i==l)){
				bb[i]=1;
			}
			else
				bb[i]=0;
		}
		int yy=Query(bb);
		if(yy==1){
			return l;
		}
		else{
			return -1;
		}
	}
	else{
		int mid=(l+r)/2;
		int co=0;
		for(int i=0;i<n;i++){
			bb[i]=0;
		}
		for(int i=l;i<=mid;i++){
			if(aa[i]==2 and i!=ind){
				bb[i]=1;
				co+=1;
			}
		}
		if(co==0){
			solve(ind,mid+1,r);
		}
		else{
			bb[ind]=1;
			int yy=Query(bb);
			bb[ind]=0;
			int zz=Query(bb);
			if(yy==zz){
				return solve(ind,l,mid);
			}
			else{
				return solve(ind,mid+1,r);
			}
		}

	}
}
void Solve(int nn){
	n=nn;
	for(int i=0;i<n;i++){
		aa.pb(2);
		bb.pb(0);
	}
	int x=0;
	deque<int> ans;
	ans.push_back(0);
	int st=0;
	for(int i=0;i<n;i++){
		int y=x;
		if(i==n-1 and st==0){
			break;
		}
		x=solve(x,0,n-1);
		if(x==-1){
			x=0;
			st=1;
		}
		else{
			if(st==0){
				ans.push_back(x);
			}
			else{
				ans.push_front(x);
			}
		}
		aa[y]=0;
	}
	vector<int> fin;
	for(int i=0;i<n;i++){
		int x=ans.front();
		ans.pop_front();
		fin.pb(x+1);
	}
	Answer(fin);
}
/*int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	Solve(4);


	return 0;
}*/

Compilation message (stderr)

library.cpp: In function 'int solve(int, int, int)':
library.cpp:76:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...