Submission #70836694
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
template <typename T>
using vc = vector<T>;
using ll = long long;
using PQ_max = priority_queue<int>;
using PQ_min = priority_queue<int, vector<int>, greater<int>>;
template <typename PQ>
struct Removable_Queue {
PQ que, rm_que;
int cnt = 0;
ll sum = 0;
bool empty() { return cnt == 0; }
int top() {
normalize();
return que.top();
}
void push(int x) {
que.push(x);
cnt += 1, sum += x;
}
void pop(int x) {
rm_que.push(x);
cnt -= 1, sum -= x;
}
void pop() {
normalize();
cnt -= 1, sum -= que.top();
que.pop();
}
private:
void normalize() {
while (!rm_que.empty() && rm_que.top() == que.top()) {
rm_que.pop(), que.pop();
}
}
};
// total time complexity: sum((Q + sum_i |K_i-K_{i+1}|)log Q)
struct PartitionSum {
Removable_Queue<PQ_max> que_l;
Removable_Queue<PQ_min> que_r;
void insert(int x) {
if (que_l.empty() || que_l.top() < x) {
que_r.push(x);
} else {
que_l.push(x);
}
}
void erase(int x) {
if (que_l.empty() || que_l.top() < x) {
que_r.pop(x);
} else {
que_l.pop(x);
}
}
pair<ll, ll> get_sum(int K) {
assert(0 <= K && K <= que_l.cnt + que_r.cnt);
while (que_l.cnt < K) {
que_l.push(que_r.top()), que_r.pop();
}
while (que_l.cnt > K) {
que_r.push(que_l.top()), que_l.pop();
}
return {que_l.sum, que_r.sum};
}
};
void solve() {
int N, M, Q;
cin >> N >> M >> Q;
vc<int> A(N + M), I(Q), X(Q);
for (int i = 0; i < N + M; ++i) cin >> A[i];
PartitionSum S1, S2;
for (int x : A) S1.insert(x), S2.insert(x);
for (int q = 0; q < Q; ++q) {
int t, i, x;
cin >> t >> i >> x;
i = (t == 1 ? i - 1 : i - 1 + N);
S1.erase(A[i]), S2.erase(A[i]);
A[i] = x;
S1.insert(A[i]), S2.insert(A[i]);
auto [a, b] = S1.get_sum(N / 2);
auto [c, d] = S2.get_sum(N / 2 + M);
assert(a + b == c + d);
ll ans = a + d;
cout << ans << "\n";
}
}
signed main() {
std::cin.tie(nullptr);
std::ios::sync_with_stdio(false);
solve();
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - Remove Median Operations |
| User | maspy |
| Language | C++23 (GCC 15.2.0) |
| Score | 600 |
| Code Size | 2203 Byte |
| Status | AC |
| Exec Time | 159 ms |
| Memory | 16156 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 01_sample_01.txt, 01_sample_02.txt |
| All | 01_sample_01.txt, 01_sample_02.txt, 02_rand1_01.txt, 02_rand1_02.txt, 02_rand1_03.txt, 02_rand1_04.txt, 02_rand1_05.txt, 02_rand1_06.txt, 02_rand1_07.txt, 02_rand1_08.txt, 02_rand1_09.txt, 02_rand1_10.txt, 02_rand1_11.txt, 02_rand1_12.txt, 02_rand1_13.txt, 02_rand1_14.txt, 02_rand1_15.txt, 02_rand1_16.txt, 02_rand1_17.txt, 02_rand1_18.txt, 02_rand1_19.txt, 02_rand1_20.txt, 02_rand1_21.txt, 03_rand2_01.txt, 03_rand2_02.txt, 03_rand2_03.txt, 03_rand2_04.txt, 03_rand2_05.txt, 03_rand2_06.txt, 03_rand2_07.txt, 03_rand2_08.txt, 03_rand2_09.txt, 03_rand2_10.txt, 03_rand2_11.txt, 03_rand2_12.txt, 03_rand2_13.txt, 03_rand2_14.txt, 03_rand2_15.txt, 03_rand2_16.txt, 04_query_small_01.txt, 04_query_small_02.txt, 04_query_small_03.txt, 04_query_small_04.txt, 04_query_small_05.txt, 04_query_small_06.txt, 04_query_small_07.txt, 04_query_small_08.txt, 04_query_small_09.txt, 04_query_small_10.txt, 04_query_small_11.txt, 04_query_small_12.txt, 05_query_large_01.txt, 05_query_large_02.txt, 05_query_large_03.txt, 05_query_large_04.txt, 05_query_large_05.txt, 05_query_large_06.txt, 05_query_large_07.txt, 05_query_large_08.txt, 05_query_large_09.txt, 05_query_large_10.txt, 05_query_large_11.txt, 05_query_large_12.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01_sample_01.txt | AC | 1 ms | 3672 KiB |
| 01_sample_02.txt | AC | 1 ms | 3712 KiB |
| 02_rand1_01.txt | AC | 74 ms | 6368 KiB |
| 02_rand1_02.txt | AC | 77 ms | 6288 KiB |
| 02_rand1_03.txt | AC | 81 ms | 6200 KiB |
| 02_rand1_04.txt | AC | 69 ms | 8380 KiB |
| 02_rand1_05.txt | AC | 70 ms | 7944 KiB |
| 02_rand1_06.txt | AC | 81 ms | 12608 KiB |
| 02_rand1_07.txt | AC | 82 ms | 12552 KiB |
| 02_rand1_08.txt | AC | 81 ms | 12644 KiB |
| 02_rand1_09.txt | AC | 82 ms | 12252 KiB |
| 02_rand1_10.txt | AC | 83 ms | 12196 KiB |
| 02_rand1_11.txt | AC | 112 ms | 14208 KiB |
| 02_rand1_12.txt | AC | 119 ms | 14552 KiB |
| 02_rand1_13.txt | AC | 89 ms | 11572 KiB |
| 02_rand1_14.txt | AC | 89 ms | 10652 KiB |
| 02_rand1_15.txt | AC | 97 ms | 12532 KiB |
| 02_rand1_16.txt | AC | 79 ms | 10604 KiB |
| 02_rand1_17.txt | AC | 138 ms | 15628 KiB |
| 02_rand1_18.txt | AC | 139 ms | 15632 KiB |
| 02_rand1_19.txt | AC | 138 ms | 16156 KiB |
| 02_rand1_20.txt | AC | 138 ms | 15624 KiB |
| 02_rand1_21.txt | AC | 137 ms | 16140 KiB |
| 03_rand2_01.txt | AC | 78 ms | 12256 KiB |
| 03_rand2_02.txt | AC | 78 ms | 12084 KiB |
| 03_rand2_03.txt | AC | 77 ms | 11888 KiB |
| 03_rand2_04.txt | AC | 79 ms | 12276 KiB |
| 03_rand2_05.txt | AC | 79 ms | 11952 KiB |
| 03_rand2_06.txt | AC | 100 ms | 14064 KiB |
| 03_rand2_07.txt | AC | 76 ms | 9700 KiB |
| 03_rand2_08.txt | AC | 82 ms | 11652 KiB |
| 03_rand2_09.txt | AC | 82 ms | 11196 KiB |
| 03_rand2_10.txt | AC | 99 ms | 11820 KiB |
| 03_rand2_11.txt | AC | 76 ms | 8784 KiB |
| 03_rand2_12.txt | AC | 120 ms | 15388 KiB |
| 03_rand2_13.txt | AC | 121 ms | 15388 KiB |
| 03_rand2_14.txt | AC | 121 ms | 15636 KiB |
| 03_rand2_15.txt | AC | 119 ms | 15376 KiB |
| 03_rand2_16.txt | AC | 120 ms | 15384 KiB |
| 04_query_small_01.txt | AC | 74 ms | 12528 KiB |
| 04_query_small_02.txt | AC | 75 ms | 12652 KiB |
| 04_query_small_03.txt | AC | 76 ms | 12652 KiB |
| 04_query_small_04.txt | AC | 75 ms | 12584 KiB |
| 04_query_small_05.txt | AC | 77 ms | 12540 KiB |
| 04_query_small_06.txt | AC | 112 ms | 14012 KiB |
| 04_query_small_07.txt | AC | 100 ms | 11004 KiB |
| 04_query_small_08.txt | AC | 103 ms | 12924 KiB |
| 04_query_small_09.txt | AC | 82 ms | 11972 KiB |
| 04_query_small_10.txt | AC | 103 ms | 11904 KiB |
| 04_query_small_11.txt | AC | 89 ms | 12176 KiB |
| 04_query_small_12.txt | AC | 140 ms | 15372 KiB |
| 05_query_large_01.txt | AC | 81 ms | 12588 KiB |
| 05_query_large_02.txt | AC | 96 ms | 12560 KiB |
| 05_query_large_03.txt | AC | 80 ms | 12568 KiB |
| 05_query_large_04.txt | AC | 82 ms | 12524 KiB |
| 05_query_large_05.txt | AC | 82 ms | 12156 KiB |
| 05_query_large_06.txt | AC | 123 ms | 13984 KiB |
| 05_query_large_07.txt | AC | 97 ms | 10784 KiB |
| 05_query_large_08.txt | AC | 99 ms | 11012 KiB |
| 05_query_large_09.txt | AC | 101 ms | 10280 KiB |
| 05_query_large_10.txt | AC | 130 ms | 13304 KiB |
| 05_query_large_11.txt | AC | 104 ms | 12696 KiB |
| 05_query_large_12.txt | AC | 159 ms | 15632 KiB |