Submission #639418

#TimeUsernameProblemLanguageResultExecution timeMemory
639418beaconmc도서관 (JOI18_library)C++14
0 / 100
42 ms208 KiB

#include <bits/stdc++.h>
typedef int ll;
using namespace std;

#define FOR(i, x, y) for(ll i=x; i<y; i++)
#define FORNEG(i, x, y) for(ll i=x; i>y; i--)
#define fast() ios_base::sync_with_stdio(false);cin.tie(NULL)


#include "library.h"
using namespace std;

ll b = -1;
ll n = 1;
unordered_set<ll> sussies;

int q(vector<int> arr){
	if (arr.size()==0) return 0;
	vector<ll> query(n);
	for (auto&i : arr){
		query[i] = 1;
	}
	return Query(query);
}

bool begins(vector<int> oldarr){
	vector<int> arr;
	for (auto&i : oldarr){
		if (!sussies.count(i)) arr.push_back(i);
	}

	int result = q(arr);
	arr.push_back(b);
	int result2 = q(arr);
	if (result == result2) return 1;
	return 0;
}


void Solve(int N)
{
	n = N;

	FOR(i,0,n){
		vector<ll> queries;
		FOR(j,0,n){
			if (j!=i) queries.push_back(j);
		}
		if (q(queries)==1){
			b = i;
			break;
		}
	}
	vector<ll> ans;
	ans.push_back(b);
	sussies.insert(b);


	FOR(i,0,n-1){
		ll l=0;
		ll r = n;
		while (l<r){
			vector<ll> queries;
			ll mid = (l+r)/2;
			FOR(i,l,mid+1){
				queries.push_back(i);
			}

			bool sus = begins(queries);


			if (sus) r = mid;
			else l = mid+1;
		}
		b = l;
		sussies.insert(b);
		ans.push_back(l);

	};
	FOR(i,0,n){
		ans[i] += 1;
	}
	for (auto&i : ans){
		cout << i << " ";
	}
	Answer(ans);

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...