Submission #771998

#TimeUsernameProblemLanguageResultExecution timeMemory
771998Mohammad_ParsaLibrary (JOI18_library)C++17
0 / 100
30 ms208 KiB
#include <cstdio>
#include <vector>
#include <iostream>
#include "library.h"
using namespace std;
#define endl '\n'
#define pb push_back
#define F first
#define S second
#define mk make_pair
typedef long long ll;

const int N=1e3+7;
int vis[N];
vector<int>vec,a,b;

void Solve(int n){
	vector<int> m;
	vector<int> ans;
	int x=1;
	for(int i=1;i<=n;i++){
		m.clear();
		for(int j=1;j<=n;j++){
			int g=1;
			if(j==i)g=0;
			m.pb(g);
		}
		int y=Query(m);
		if(y==1){
			x=i;
			break;
		}
	}
	fill(vis,vis+N,0);
	ans.pb(x);vis[x]=1;
	for(int i=2;i<=n;i++){
		a.clear();
		for(int j=1;j<=n;j++){
			if(!vis[j])a.pb(j);
		}
		while(a.size()>1){
			b.clear();
			while(a.size()>b.size()){
				b.pb(a.back());
				a.pop_back();
			}
			m.clear();
			for(int j=1;j<=n;j++){
				int g=1;if(vis[j])g=0;
				m.pb(g);
			}
			for(auto j:b)m[j-1]=0;
			int val=Query(m);
			for(int j=1;j<=n;j++){
				if(vis[j])m[j-1]=1;
			}
			int val2=Query(m);
			if(val!=val2){
				swap(a,b);
			}
		}
		ans.pb(a[0]);
		vis[a[0]]=1;
	}
	Answer(ans);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...