Submission #1264946

#TimeUsernameProblemLanguageResultExecution timeMemory
1264946minggaArt Collections (BOI22_art)C++20
Compilation error
0 ms0 KiB
// Author: caption_mingle
#include "bits/stdc++.h"
// #include "art.h"

using namespace std;

#define ln "\n"
#define pb push_back
#define fi first
#define se second
#define all(x) (x).begin(), (x).end()
#define sz(x) ((int)(x).size())
#define ll long long
const int mod = 1e9 + 7;
const int inf = 2e9;

struct BIT {
	int n;
	vector<int> bit;
	BIT(int n) : n(n) {
		bit.resize(n + 1, 0);
	}
	void update(int u, int x) {
		for(; u <= n; u += (u & -u)) bit[u] += x;
	}
	int get(int u) {
		int ans = 0;
		for(; u > 0; u -= (u & -u)) ans += bit[u];
		return ans;
	}
	int get(int l, int r) {
		return get(r) - get(l - 1);
	}
};


void solve(int N) {
	vector<int> vec;
	for(int i = 1; i <= N; i++) vec.pb(i);
	int base = publish(vec);
	vector<int> f(N + 1, 0);
	for(int i = 2; i <= N; i++) {
		vector<int> vec;
		vec.pb(i);
		for(int j = 1; j <= N; j++) {
			if(j == i) continue;
			vec.pb(j);
		}
		int cur = publish(vec);
		f[i] = (i - 1 - base + cur) / 2;
	}
	vector<int> ans;
	BIT bit(N);
	for(int i = 1; i <= N; i++) bit.update(i, 1);
	for(int i = N; i > 0; i--) {
		int l = 1, r = N, tar;
		while(l <= r) {
			int m = (l + r) >> 1;
			if(bit.get(m, N) >= f[i] + 1) {
				tar = m;
				l = m + 1;
			} else r = m - 1;
		}
		ans.pb(tar);
		bit.update(tar, -1);
	}
	reverse(all(ans));
	answer(ans);
}

// signed main() {
// 	int n; cin >> n;
// 	solve(n);
// }

Compilation message (stderr)

art.cpp: In function 'void solve(int)':
art.cpp:40:20: error: 'publish' was not declared in this scope
   40 |         int base = publish(vec);
      |                    ^~~~~~~
art.cpp:68:9: error: 'answer' was not declared in this scope
   68 |         answer(ans);
      |         ^~~~~~