| Task: | Lista |
| Sender: | zli0122 |
| Submission time: | 2026-01-17 21:55:37 +0200 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | 21 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | ACCEPTED | 9 |
| #3 | ACCEPTED | 12 |
| #4 | WRONG ANSWER | 0 |
| #5 | WRONG ANSWER | 0 |
| #6 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 3, 4, 5, 6 | details |
| #2 | ACCEPTED | 0.00 s | 1, 4, 5, 6 | details |
| #3 | ACCEPTED | 0.00 s | 1, 2, 4, 5, 6 | details |
| #4 | ACCEPTED | 0.00 s | 1, 2, 4, 5, 6 | details |
| #5 | ACCEPTED | 0.00 s | 1, 2, 4, 5, 6 | details |
| #6 | ACCEPTED | 0.00 s | 1, 3, 4, 5, 6 | details |
| #7 | ACCEPTED | 0.00 s | 1, 4, 5, 6 | details |
| #8 | ACCEPTED | 0.00 s | 1, 4, 5, 6 | details |
| #9 | ACCEPTED | 0.00 s | 1, 4, 5, 6 | details |
| #10 | ACCEPTED | 0.00 s | 1, 2, 4, 5, 6 | details |
| #11 | ACCEPTED | 0.00 s | 1, 4, 5, 6 | details |
| #12 | ACCEPTED | 0.00 s | 1, 4, 5, 6 | details |
| #13 | ACCEPTED | 0.00 s | 1, 4, 5, 6 | details |
| #14 | ACCEPTED | 0.06 s | 2, 6 | details |
| #15 | ACCEPTED | 0.06 s | 2, 6 | details |
| #16 | ACCEPTED | 0.06 s | 2, 6 | details |
| #17 | ACCEPTED | 0.06 s | 2, 6 | details |
| #18 | ACCEPTED | 0.11 s | 2, 6 | details |
| #19 | ACCEPTED | 0.06 s | 2, 6 | details |
| #20 | ACCEPTED | 0.00 s | 1, 3, 4, 5, 6 | details |
| #21 | ACCEPTED | 0.06 s | 3, 6 | details |
| #22 | ACCEPTED | 0.06 s | 3, 6 | details |
| #23 | ACCEPTED | 0.06 s | 3, 6 | details |
| #24 | ACCEPTED | 0.06 s | 3, 6 | details |
| #25 | ACCEPTED | 0.12 s | 3, 6 | details |
| #26 | ACCEPTED | 0.08 s | 3, 6 | details |
| #27 | ACCEPTED | 0.01 s | 4, 6 | details |
| #28 | ACCEPTED | 0.01 s | 4, 6 | details |
| #29 | ACCEPTED | 0.01 s | 4, 6 | details |
| #30 | ACCEPTED | 0.01 s | 2, 4, 6 | details |
| #31 | ACCEPTED | 0.01 s | 4, 6 | details |
| #32 | ACCEPTED | 0.01 s | 4, 6 | details |
| #33 | ACCEPTED | 0.05 s | 5, 6 | details |
| #34 | ACCEPTED | 0.07 s | 5, 6 | details |
| #35 | ACCEPTED | 0.26 s | 5, 6 | details |
| #36 | ACCEPTED | 0.10 s | 2, 5, 6 | details |
| #37 | ACCEPTED | 0.22 s | 5, 6 | details |
| #38 | ACCEPTED | 0.06 s | 6 | details |
| #39 | ACCEPTED | 0.07 s | 6 | details |
| #40 | ACCEPTED | 0.33 s | 6 | details |
| #41 | ACCEPTED | 0.10 s | 2, 5, 6 | details |
| #42 | ACCEPTED | 0.22 s | 5, 6 | details |
| #43 | ACCEPTED | 0.00 s | 1, 3, 4, 5, 6 | details |
| #44 | ACCEPTED | 0.00 s | 1, 2, 4, 5, 6 | details |
| #45 | WRONG ANSWER | 0.00 s | 1, 4, 5, 6 | details |
Code
#include <bits/stdc++.h>
using namespace std;
struct SegTree {
int n;
vector<pair<int,int>> st;
const pair<int,int> INF = {INT_MAX, INT_MAX};
SegTree(int n=0): n(n) {
st.assign(4*n+5, INF);
}
static pair<int,int> best(pair<int,int> a, pair<int,int> b) {
// min by value, then min by -index (=> largest index)
return min(a, b);
}
void build(const vector<pair<int,int>>& a, int p, int l, int r) {
if (l == r) { st[p] = a[l]; return; }
int m = (l + r) / 2;
build(a, p*2, l, m);
build(a, p*2+1, m+1, r);
st[p] = best(st[p*2], st[p*2+1]);
}
void build(const vector<pair<int,int>>& a) {
build(a, 1, 1, n);
}
void update(int idx, pair<int,int> val, int p, int l, int r) {
if (l == r) { st[p] = val; return; }
int m = (l + r) / 2;
if (idx <= m) update(idx, val, p*2, l, m);
else update(idx, val, p*2+1, m+1, r);
st[p] = best(st[p*2], st[p*2+1]);
}
void update(int idx, pair<int,int> val) {
update(idx, val, 1, 1, n);
}
pair<int,int> query(int ql, int qr, int p, int l, int r) {
if (qr < l || r < ql) return INF;
if (ql <= l && r <= qr) return st[p];
int m = (l + r) / 2;
return best(query(ql, qr, p*2, l, m),
query(ql, qr, p*2+1, m+1, r));
}
pair<int,int> query(int l, int r) {
if (l > r) return INF;
return query(l, r, 1, 1, n);
}
};
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, k;
cin >> n >> k;
vector<int> a(n+1);
for (int i = 1; i <= n; i++) cin >> a[i];
vector<char> used(n+1, false);
int usedCount = 0;
// Trees store (value, -index). INF for "not present".
vector<pair<int,int>> initUsed(n+1), initUnused(n+1);
for (int i = 1; i <= n; i++) {
initUsed[i] = {INT_MAX, INT_MAX}; // empty initially
initUnused[i] = {a[i], -i}; // all unused initially
}
SegTree segUsed(n), segUnused(n);
segUsed.build(initUsed);
segUnused.build(initUnused);
auto setUsed = [&](int idx) {
if (used[idx]) return;
used[idx] = true;
usedCount++;
// remove from UNUSED, add to USED
segUnused.update(idx, {INT_MAX, INT_MAX});
segUsed.update(idx, {a[idx], -idx});
};
auto refreshValue = [&](int idx) {
if (used[idx]) segUsed.update(idx, {a[idx], -idx});
else segUnused.update(idx, {a[idx], -idx});
};
for (int i = 1; i <= n; i++) {
int rem = k - usedCount;
if (rem <= 0 && !used[i]) {
// can't include i anymore, so it cannot change
continue;
}
pair<int,int> best = {a[i], -i}; // default: keep as-is
int needCost_i = used[i] ? 0 : 1;
// If i is (or can be) included, consider donors in [i..n]
// donor from USED costs 0 extra, donor from UNUSED costs 1 extra
if (rem >= needCost_i) {
// donors already in used set
auto candU = segUsed.query(i, n);
best = min(best, candU);
// donors from unused set need one more budget slot (unless donor is i itself, but then no change)
if (rem >= needCost_i + 1) {
auto candN = segUnused.query(i, n);
best = min(best, candN);
}
}
int bestVal = best.first;
int bestPos = -best.second;
if (bestVal < a[i] && bestPos != i) {
// We will swap i <-> bestPos to bring bestVal to i
int extra = 0;
if (!used[i]) extra++;
if (!used[bestPos]) extra++;
if (extra <= rem) {
// activate indices
setUsed(i);
setUsed(bestPos);
// swap values
swap(a[i], a[bestPos]);
// refresh segment trees
refreshValue(i);
refreshValue(bestPos);
}
}
}
for (int i = 1; i <= n; i++) {
cout << a[i] << (i == n ? '\n' : ' ');
}
return 0;
}
Test details
Test 1 (public)
Group: 1, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 6 3 6 5 1 4 1 3 |
| correct output |
|---|
| 1 5 1 4 3 6 |
| user output |
|---|
| 1 5 1 4 3 6 |
Test 2 (public)
Group: 1, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 4 4 1 2 3 4 |
| correct output |
|---|
| 1 2 3 4 |
| user output |
|---|
| 1 2 3 4 |
Test 3
Group: 1, 2, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 2 2 2 1 |
| correct output |
|---|
| 1 2 |
| user output |
|---|
| 1 2 |
Test 4
Group: 1, 2, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 2 6 6 6 6 6 6 6 6 6 6 |
| correct output |
|---|
| 6 6 6 6 6 6 6 6 6 6 |
| user output |
|---|
| 6 6 6 6 6 6 6 6 6 6 |
Test 5
Group: 1, 2, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 2 2 5 10 1 8 6 4 7 3 9 |
| correct output |
|---|
| 1 5 10 2 8 6 4 7 3 9 |
| user output |
|---|
| 1 5 10 2 8 6 4 7 3 9 |
Test 6
Group: 1, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 3 6 9 2 7 5 4 9 9 10 8 |
| correct output |
|---|
| 2 6 9 7 5 4 9 9 10 8 |
| user output |
|---|
| 2 6 9 7 5 4 9 9 10 8 |
Test 7
Group: 1, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 4 3 4 2 9 5 1 5 6 10 8 |
| correct output |
|---|
| 1 2 3 9 5 4 5 6 10 8 |
| user output |
|---|
| 1 2 3 9 5 4 5 6 10 8 |
Test 8
Group: 1, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 7 8 10 6 4 5 3 1 9 2 9 |
| correct output |
|---|
| 1 2 3 4 5 6 8 9 9 10 |
| user output |
|---|
| 1 2 3 4 5 6 8 9 9 10 |
Test 9
Group: 1, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 10 8 5 7 7 6 9 5 1 3 4 |
| correct output |
|---|
| 1 3 4 5 5 6 7 7 8 9 |
| user output |
|---|
| 1 3 4 5 5 6 7 7 8 9 |
Test 10
Group: 1, 2, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 2 1 2 3 4 5 6 7 8 9 10 |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 |
Test 11
Group: 1, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 9 10 9 8 7 6 5 4 3 2 1 |
| correct output |
|---|
| 1 2 3 4 6 5 7 8 9 10 |
| user output |
|---|
| 1 2 3 4 6 5 7 8 9 10 |
Test 12
Group: 1, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 10 10 9 8 7 6 5 4 3 2 1 |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 |
Test 13
Group: 1, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 9 8 9 8 7 6 5 4 3 2 1 |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 |
Test 14
Group: 2, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 2 176369 57172 92603 196271 1967... |
| correct output |
|---|
| 1155 57172 92603 196271 196768... |
| user output |
|---|
| 1155 57172 92603 196271 196768... |
Test 15
Group: 2, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 2 188653 156245 40967 173336 185... |
| correct output |
|---|
| 57 156245 40967 173336 185896 ... |
| user output |
|---|
| 57 156245 40967 173336 185896 ... |
Test 16
Group: 2, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 2 170455 14692 60230 38375 31037... |
| correct output |
|---|
| 20 14692 60230 38375 31037 395... |
| user output |
|---|
| 20 14692 60230 38375 31037 395... |
Test 17
Group: 2, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 2 59289 119695 145821 16906 1149... |
| correct output |
|---|
| 1 119695 145821 16906 114932 1... |
| user output |
|---|
| 1 119695 145821 16906 114932 1... |
Test 18
Group: 2, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 2 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 19
Group: 2, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 2 200000 199999 199998 199997 19... |
| correct output |
|---|
| 1 199999 199998 199997 199996 ... |
| user output |
|---|
| 1 199999 199998 199997 199996 ... |
Test 20
Group: 1, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 3 3 3 2 1 |
| correct output |
|---|
| 1 2 3 |
| user output |
|---|
| 1 2 3 |
Test 21
Group: 3, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 3 66357 7587 176209 27489 170275... |
| correct output |
|---|
| 390 7587 66357 27489 170275 31... |
| user output |
|---|
| 390 7587 66357 27489 170275 31... |
Test 22
Group: 3, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 3 93946 193045 25177 150263 1482... |
| correct output |
|---|
| 205 93946 25177 150263 148229 ... |
| user output |
|---|
| 205 93946 25177 150263 148229 ... |
Test 23
Group: 3, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 3 81262 22620 25235 22620 10144 ... |
| correct output |
|---|
| 6 22620 25235 22620 10144 2614... |
| user output |
|---|
| 6 22620 25235 22620 10144 2614... |
Test 24
Group: 3, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 3 62925 65929 74691 187894 13817... |
| correct output |
|---|
| 1 62925 74691 187894 138170 15... |
| user output |
|---|
| 1 62925 74691 187894 138170 15... |
Test 25
Group: 3, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 3 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 26
Group: 3, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 3 200000 199999 199998 199997 19... |
| correct output |
|---|
| 1 199999 199998 199997 199996 ... |
| user output |
|---|
| 1 199999 199998 199997 199996 ... |
Test 27
Group: 4, 6
Verdict: ACCEPTED
| input |
|---|
| 2000 100 1468 510 463 644 1429 1108 153... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 13 14 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 13 14 ... |
Test 28
Group: 4, 6
Verdict: ACCEPTED
| input |
|---|
| 2000 1000 1246 1024 680 1448 504 921 976... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 29
Group: 4, 6
Verdict: ACCEPTED
| input |
|---|
| 2000 1900 461 1257 1198 1876 651 1930 15... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 30
Group: 2, 4, 6
Verdict: ACCEPTED
| input |
|---|
| 2000 2 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 31
Group: 4, 6
Verdict: ACCEPTED
| input |
|---|
| 2000 597 2000 1999 1998 1997 1996 1995 ... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 32
Group: 4, 6
Verdict: ACCEPTED
| input |
|---|
| 2000 2000 2000 1999 1998 1997 1996 1995 ... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 33
Group: 5, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 100 8 4 2 6 7 2 9 2 10 9 4 1 1 3 1... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
Test 34
Group: 5, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 10000 5 7 2 6 1 9 7 2 4 10 1 4 4 1 9... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
Test 35
Group: 5, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 190000 8 3 5 5 7 8 10 10 8 10 2 2 2 8... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
Test 36
Group: 2, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
Test 37
Group: 5, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 10 10 10 10 10 10 10 10 10 10 ... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
Test 38
Group: 6
Verdict: ACCEPTED
| input |
|---|
| 200000 100 151203 41607 101924 180578 132... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 39
Group: 6
Verdict: ACCEPTED
| input |
|---|
| 200000 10000 172851 90759 102500 164610 200... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 8 9 10 11 11 1... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 8 9 10 11 11 1... |
Test 40
Group: 6
Verdict: ACCEPTED
| input |
|---|
| 200000 190000 176771 53238 75539 184219 9404... |
| correct output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 41
Group: 2, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
Test 42
Group: 5, 6
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 10 10 10 10 10 10 10 10 10 10 ... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
Test 43
Group: 1, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 3 8 5 5 8 8 10 10 10 6 3 |
| correct output |
|---|
| 3 5 5 8 8 8 10 10 6 10 |
| user output |
|---|
| 3 5 5 8 8 8 10 10 6 10 |
Test 44
Group: 1, 2, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 2 1 1 2 5 2 7 1 2 4 2 |
| correct output |
|---|
| 1 1 1 5 2 7 2 2 4 2 |
| user output |
|---|
| 1 1 1 5 2 7 2 2 4 2 |
Test 45
Group: 1, 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 10 4 1 1 2 5 2 7 1 2 4 2 |
| correct output |
|---|
| 1 1 1 2 2 5 7 2 4 2 |
| user output |
|---|
| 1 1 1 2 2 7 2 2 4 5 |
Feedback: Incorrect character on line 1 col 11: expected "5", got "7"
