Submission #1208272

#TimeUsernameProblemLanguageResultExecution timeMemory
1208272viduxSphinx's Riddle (IOI24_sphinx)C++17
31 / 100
34 ms660 KiB
#include <bits/stdc++.h>
using namespace std;

#define FOR(i, n) for (int i = 0; i < n; ++i)
#define REP(i, n, m) for (int i = n; i <= m; ++i)
#define REPR(i, n, m) for (int i = n; i >= m; --i)
#define FORR(x, a) for (auto& x : a)
#define FORR2(x, y, a) for (auto& [x, y] : a)
#define ALL(x) (x).begin(), (x).end()
#define RALL(x) (x).rbegin(), (x).rend()
#define SZ(a) ((int)a.size())

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<bool> vb;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef vector<vb> vvb;

const int INF = 1e9;
const ll LLINF = 1e18;

#include "sphinx.h"

std::vector<int> find_colours(int n, std::vector<int> X, std::vector<int> Y) {
	vi ans(n);
	if (n <= 50) {
		FOR(i, n) {
			FOR(j, n) {
				vi e(n, j);
				e[i] = -1;
				int cnt = perform_experiment(e);
				if (cnt == 1) {
					ans[i] = j;
					break;
				}
			}
		} 
		return ans;
	}
	FOR(i, n) {
		//cout << "i:" << i << endl;
		int l = 0, r = n-1;
		while (l < r) {
			vi e(n, n);
			e[i] = -1;
			int m = (l+r)/2;
			int k = m-l+1;
			int added = 0;
			for (int j = 0; added < k; j++) {
				if (i == j) continue;
				e[j] = l+added++;
			}
			//cout << "\tl: " << l << " r: " << r << endl;
			//cout << "\te: "; FORR(x, e) cout << x << " "; cout << endl;
			int cnt = perform_experiment(e);
			int goodCnt = 1 + m-l+1;
			if (goodCnt == cnt) r = m;
			else l = m+1;
		}
		ans[i] = l;
	}
	return ans;
}

/*
5 10
1 2 3 1 0
0 1
0 2
0 3
0 4
1 2
1 3
1 4
2 3
2 4
3 4
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...