Submission #43122325
Source Code Expand
//#pragma GCC optimize("Ofast,O3,unroll-loops")
//#pragma GCC target("avx,avx2")
#include <bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define bpc(x) __builtin_popcount(x)
#define bpcll(x) __builtin_popcountll(x)
#define MP make_pair
//#define endl '\n'
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
typedef long long ll;
const int MOD = 1e9 + 7;
const int N = 1e6 + 3e2;
void solve(){
int q;
cin >> q;
multiset<int> s; // blackboard
multiset<int> v; // values
function<void(int)> add = [&](int x){
auto it = s.insert(x);
int p = -1, q = -1;
if (it != s.begin()){
p = *prev(it);
v.insert(p ^ x);
}
if (next(it) != s.end()){
q = *next(it);
v.insert(x ^ q);
}
if (p != -1 && q != -1){
v.erase(v.find(p ^ q));
}
};
function<void(int)> del = [&](int x){
auto it = s.find(x);
int p = -1, q = -1;
if (it != s.begin()){
p = *prev(it);
v.erase(v.find(p ^ x));
}
if (next(it) != s.end()){
q = *next(it);
v.erase(v.find(x ^ q));
}
if (p != -1 && q != -1){
v.insert(p ^ q);
}
s.erase(it);
};
while (q--){
int t;
cin >> t;
if (t != 3){
int x;
cin >> x;
if (t == 1) {
add(x);
} else {
del(x);
}
} else {
cout << *v.begin() << "\n";
}
}
}
int main(){
clock_t startTime = clock();
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
#ifdef LOCAL
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int test_cases = 1;
// cin >> test_cases;
for (int test = 1; test <= test_cases; test++){
//cout << (solve() ? "YES" : "NO") << endl;
solve();
}
#ifdef LOCAL
cerr << "Time: " << int((double) (clock() - startTime) / CLOCKS_PER_SEC * 1000) << " ms" << endl;
#endif
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | G - Minimum Xor Pair Query |
| User | dxz05 |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 2346 Byte |
| Status | AC |
| Exec Time | 610 ms |
| Memory | 31744 KiB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:89:13: warning: unused variable ‘startTime’ [-Wunused-variable]
89 | clock_t startTime = clock();
| ^~~~~~~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_01.txt |
| All | 00_sample_01.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_01.txt | AC | 10 ms | 3604 KiB |
| 01_test_01.txt | AC | 366 ms | 22272 KiB |
| 01_test_02.txt | AC | 350 ms | 22328 KiB |
| 01_test_03.txt | AC | 361 ms | 22352 KiB |
| 01_test_04.txt | AC | 375 ms | 22284 KiB |
| 01_test_05.txt | AC | 346 ms | 22416 KiB |
| 01_test_06.txt | AC | 370 ms | 22228 KiB |
| 01_test_07.txt | AC | 362 ms | 22288 KiB |
| 01_test_08.txt | AC | 366 ms | 22352 KiB |
| 01_test_09.txt | AC | 75 ms | 3536 KiB |
| 01_test_10.txt | AC | 79 ms | 3656 KiB |
| 01_test_11.txt | AC | 95 ms | 3636 KiB |
| 01_test_12.txt | AC | 94 ms | 3596 KiB |
| 01_test_13.txt | AC | 112 ms | 3636 KiB |
| 01_test_14.txt | AC | 112 ms | 3628 KiB |
| 01_test_15.txt | AC | 147 ms | 4460 KiB |
| 01_test_16.txt | AC | 146 ms | 4636 KiB |
| 01_test_17.txt | AC | 115 ms | 17588 KiB |
| 01_test_18.txt | AC | 568 ms | 31744 KiB |
| 01_test_19.txt | AC | 610 ms | 31652 KiB |
| 01_test_20.txt | AC | 249 ms | 17648 KiB |
| 01_test_21.txt | AC | 247 ms | 17584 KiB |
| 01_test_22.txt | AC | 366 ms | 17664 KiB |
| 01_test_23.txt | AC | 358 ms | 17644 KiB |
| 01_test_24.txt | AC | 41 ms | 3552 KiB |