Submission #656586

#TimeUsernameProblemLanguageResultExecution timeMemory
656586haojiandanLibrary (JOI18_library)C++14
100 / 100
443 ms312 KiB
#include <bits/stdc++.h>
#include "library.h"
using namespace std;

int n,p[1010],tot;
int d[1010],vis[1010];
void Solve(int _n) {
	n=_n;
	if (n==1) { Answer({1}); return; }
	int x=-1;
	for (int i=1;i<=n;i++) {
		vector<int> Q(n);
		for (int j=1;j<=n;j++) Q[j-1]=1;
		Q[i-1]=0;
		if (Query(Q)==1) { x=i; break; }
	}
	d[1]=x,vis[x]=1;
	for (int i=2;i<=n;i++) {
		tot=0;
		for (int j=1;j<=n;j++) if (!vis[j]) p[++tot]=j;
		if (tot==1) { d[i]=p[1]; continue; }
		int l=1,r=tot,mid,res=-1;
		while (l<=r) {
			vector<int> Q(n);
			for (int j=1;j<=n;j++) Q[j-1]=0;
			int mid=(l+r)>>1;
			for (int j=1;j<=mid;j++) Q[p[j]-1]=1;
			int tmp=Query(Q);
			Q[d[i-1]-1]=1;
			tmp=abs(tmp-Query(Q));
			if (tmp==0) res=mid,r=mid-1; else l=mid+1;
		}
		assert(res!=-1);
		x=p[res];
		d[i]=x,vis[x]=1;
	}
	vector<int> ans(n);
	for (int i=1;i<=n;i++) ans[i-1]=d[i];
	Answer(ans);
}

Compilation message (stderr)

library.cpp: In function 'void Solve(int)':
library.cpp:22:17: warning: unused variable 'mid' [-Wunused-variable]
   22 |   int l=1,r=tot,mid,res=-1;
      |                 ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...