Submission #1264942

#TimeUsernameProblemLanguageResultExecution timeMemory
1264942minggaArt 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;
	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 ans(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);
	}
}

Compilation message (stderr)

art.cpp: In constructor 'BIT::BIT(int)':
art.cpp:20:17: error: 'bit' was not declared in this scope
   20 |                 bit.resize(n + 1, 0);
      |                 ^~~
art.cpp: In member function 'void BIT::update(int, int)':
art.cpp:23:46: error: 'bit' was not declared in this scope
   23 |                 for(; u <= n; u += (u & -u)) bit[u] += x;
      |                                              ^~~
art.cpp: In member function 'int BIT::get(int)':
art.cpp:27:52: error: 'bit' was not declared in this scope
   27 |                 for(; u > 0; u -= (u & -u)) ans += bit[u];
      |                                                    ^~~
art.cpp: In function 'void solve(int)':
art.cpp:45:34: error: expected ';' before '}' token
   45 |                         vec.pb(j)
      |                                  ^
      |                                  ;
   46 |                 }
      |                 ~                 
art.cpp:52:29: error: 'n' was not declared in this scope
   52 |         for(int i = 1; i <= n; i++) bit.update(i, 1);
      |                             ^
art.cpp:57:35: error: no matching function for call to 'BIT::get(int&, int&)'
   57 |                         if(bit.get(m, N) >= f[i] + 1) {
      |                            ~~~~~~~^~~~~~
art.cpp:25:13: note: candidate: 'int BIT::get(int)'
   25 |         int get(int u) {
      |             ^~~
art.cpp:25:13: note:   candidate expects 1 argument, 2 provided