Submission #344049

#TimeUsernameProblemLanguageResultExecution timeMemory
344049tengiz05Library (JOI18_library)C++17
19 / 100
412 ms620 KiB
#include <bits/stdc++.h>
#include "library.h"
//~ #include "grader.cpp"
using namespace std;
void Solve(int n){
	if(n == 1){
		vector<int> ans = {1};
		Answer(ans);
		return;
	}
	vector<vector<int>> v(n);
	for(int i=0;i<n;i++){
		if(v[i].size() == 2)continue;
		vector<int> ask(n, 0);
		ask[i] = 1;
		for(int j=i+1;j<n;j++){
			if(v[j].size() == 2 || v[i].size() == 2)continue;
			ask[j] = 1;
			if(Query(ask) == 1)v[i].push_back(j), v[j].push_back(i);
			ask[j] = 0;
		}
	}
	//~ for(int i=0;i<n;i++){for(auto x : v[i])cout << x << ' ';cout << '\n';}
	vector<bool> used(n);
	vector<int> ans;
	int u=-1;
	for(int i=0;i<n;i++){
		if(v[i].size() == 1){
			u = i;break;
		}
	}
	assert(u != -1);
	while(true){
		bool ch = false;
		used[u] = true;
		ans.push_back(u+1);
		for(auto to : v[u]){
			if(!used[to]){
				ch=true;
				u=to;
			}
		}if(!ch)break;
	}
	Answer(ans);
	return;
}

/*

5
4 2 5 3 1

*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...