| Task: | Retkeily |
| Sender: | MikaelM |
| Submission time: | 2025-05-31 19:39:15 +0300 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 10 |
| #2 | ACCEPTED | 15 |
| #3 | ACCEPTED | 25 |
| #4 | ACCEPTED | 50 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.02 s | 1, 2, 3, 4 | details |
| #2 | ACCEPTED | 0.02 s | 1, 2, 3, 4 | details |
| #3 | ACCEPTED | 0.02 s | 1, 2, 3, 4 | details |
| #4 | ACCEPTED | 0.02 s | 1, 2, 3, 4 | details |
| #5 | ACCEPTED | 0.02 s | 1, 2, 3, 4 | details |
| #6 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #7 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #8 | ACCEPTED | 0.02 s | 1, 2, 3, 4 | details |
| #9 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #10 | ACCEPTED | 0.02 s | 1, 2, 3, 4 | details |
| #11 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #12 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #13 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #14 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #15 | ACCEPTED | 0.02 s | 1, 2, 4 | details |
| #16 | ACCEPTED | 0.03 s | 2, 4 | details |
| #17 | ACCEPTED | 0.03 s | 2, 4 | details |
| #18 | ACCEPTED | 0.04 s | 2, 4 | details |
| #19 | ACCEPTED | 0.10 s | 2, 3, 4 | details |
| #20 | ACCEPTED | 0.12 s | 2, 4 | details |
| #21 | ACCEPTED | 0.19 s | 2, 3, 4 | details |
| #22 | ACCEPTED | 0.02 s | 1, 3, 4 | details |
| #23 | ACCEPTED | 0.02 s | 1, 3, 4 | details |
| #24 | ACCEPTED | 0.04 s | 3, 4 | details |
| #25 | ACCEPTED | 0.24 s | 3, 4 | details |
| #26 | ACCEPTED | 0.24 s | 3, 4 | details |
| #27 | ACCEPTED | 0.24 s | 3, 4 | details |
| #28 | ACCEPTED | 0.24 s | 3, 4 | details |
| #29 | ACCEPTED | 0.02 s | 1, 4 | details |
| #30 | ACCEPTED | 0.02 s | 1, 4 | details |
| #31 | ACCEPTED | 0.02 s | 1, 4 | details |
| #32 | ACCEPTED | 0.02 s | 1, 4 | details |
| #33 | ACCEPTED | 0.02 s | 1, 4 | details |
| #34 | ACCEPTED | 0.02 s | 1, 4 | details |
| #35 | ACCEPTED | 0.02 s | 1, 4 | details |
| #36 | ACCEPTED | 0.02 s | 1, 4 | details |
| #37 | ACCEPTED | 0.05 s | 4 | details |
| #38 | ACCEPTED | 0.24 s | 4 | details |
| #39 | ACCEPTED | 0.25 s | 4 | details |
| #40 | ACCEPTED | 0.24 s | 4 | details |
| #41 | ACCEPTED | 0.15 s | 4 | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:56:59: warning: iteration 2097151 invokes undefined behavior [-Waggressive-loop-optimizations]
56 | for (int i = 1; i <= 2*SZ; i++) seg[i][0] = seg[i][1] = 1e9;
| ~~~~~~~~~~^~~~~
input/code.cpp:56:23: note: within this loop
56 | for (int i = 1; i <= 2*SZ; i++) seg[i][0] = seg[i][1] = 1e9;
| ~~^~~~~~~
input/code.cpp:77:59: warning: iteration 2097151 invokes undefined behavior [-Waggressive-loop-optimizations]
77 | for (int i = 1; i <= 2*SZ; i++) seg[i][0] = seg[i][1] = 1e9;
| ~~~~~~~~~~^~~~~
input/code.cpp:77:23: note: within this loop
77 | for (int i = 1; i <= 2*SZ; i++) seg[i][0] = seg[i][1] = 1e9;
| ~~^~~~~~~Code
#include<bits/stdc++.h>
using namespace std;
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define fi first
#define se second
using ll = long long;
const int SZ = 1 << 20;
int seg[2*SZ][2];
void aseta(int k, int x, int z) {
k += SZ;
seg[k][z] = min(seg[k][z], x);
for (k /= 2; k >= 1; k /= 2) seg[k][z] = min(seg[2*k][z], seg[2*k+1][z]);
}
int minimi(int a, int b, int z) {
a += SZ; b += SZ;
int ans = 1e9;
while (a <= b) {
if (a % 2 == 1) ans = min(ans, seg[a++][z]);
if (b % 2 == 0) ans = min(ans, seg[b--][z]);
a /= 2; b /= 2;
}
return ans;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
// {{x, vapaa?}, {y, id}}
vector<pair<pair<int, bool>, pair<int, int>>> lr, rl;
for (int i = 0; i < n; i++) {
int x, y;
cin >> x >> y;
lr.push_back({{x, 0}, {y, 0}});
rl.push_back({{-x, 0}, {y, 0}});
}
for (int i = 0; i < m; i++) {
int x, y;
cin >> x >> y;
lr.push_back({{x, 1}, {y, i}});
rl.push_back({{-x, 1}, {y, i}});
}
vector<int> dist(m, 1e9);
// left --> right
sort(all(lr));
for (int i = 1; i <= 2*SZ; i++) seg[i][0] = seg[i][1] = 1e9;
bool ok = false;
for (auto p : lr) {
int x = p.fi.fi, y = p.se.fi;
if (p.fi.se) {
// vapaa
if (!ok) continue;
int c = 1e9;
c = min(c, x+y + minimi(1, y, 0)); // above
c = min(c, x-y + minimi(y, 1e6, 1)); // below
dist[p.se.se] = min(dist[p.se.se], c);
}
else {
// varattu
ok = true;
aseta(y, -x-y, 0); // above
aseta(y, -x+y, 1); // below
}
}
// right --> left
for (int i = 1; i <= 2*SZ; i++) seg[i][0] = seg[i][1] = 1e9;
sort(all(rl));
ok = false;
for (auto p : rl) {
int x = -p.fi.fi, y = p.se.fi;
if (p.fi.se) {
// vapaa
if (!ok) continue;
int c = 1e9;
c = min(c, -x+y + minimi(1, y, 0)); // above
c = min(c, -x-y + minimi(y, 1e6, 1)); // below
dist[p.se.se] = min(dist[p.se.se], c);
}
else {
// varattu
ok = true;
aseta(y, x-y, 0); // above
aseta(y, x+y, 1); // below
}
}
cout << *max_element(all(dist)) << "\n";
return 0;
}Test details
Test 1
Group: 1, 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 1 1 6 6 8 9 |
| correct output |
|---|
| 5 |
| user output |
|---|
| 5 |
Test 2
Group: 1, 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 5 5 5 10 8 10 1 2 4 10 ... |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 3
Group: 1, 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 5 2 1 10 6 10 5 5 ... |
| correct output |
|---|
| 5 |
| user output |
|---|
| 5 |
Test 4
Group: 1, 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 10 5 6 1 8 9 3 2 6 6 ... |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 5
Group: 1, 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 5 10 10 10 6 2 10 9 8 7 ... |
| correct output |
|---|
| 7 |
| user output |
|---|
| 7 |
Test 6
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 1 1 55 68 28 42 |
| correct output |
|---|
| 53 |
| user output |
|---|
| 53 |
Test 7
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 100 100 52 56 58 96 3 99 18 1 ... |
| correct output |
|---|
| 20 |
| user output |
|---|
| 20 |
Test 8
Group: 1, 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 100 60 40 68 47 30 32 74 52 ... |
| correct output |
|---|
| 5 |
| user output |
|---|
| 5 |
Test 9
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 100 1000 44 26 18 81 18 6 83 90 ... |
| correct output |
|---|
| 20 |
| user output |
|---|
| 20 |
Test 10
Group: 1, 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 15 13 23 79 81 43 30 40 ... |
| correct output |
|---|
| 7 |
| user output |
|---|
| 7 |
Test 11
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 1 1 948 495 227 149 |
| correct output |
|---|
| 1067 |
| user output |
|---|
| 1067 |
Test 12
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 100 100 114 530 748 841 612 709 810 232 ... |
| correct output |
|---|
| 203 |
| user output |
|---|
| 203 |
Test 13
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 100 225 82 265 691 978 367 993 396 ... |
| correct output |
|---|
| 50 |
| user output |
|---|
| 50 |
Test 14
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 100 1000 848 668 189 716 451 80 626 973 ... |
| correct output |
|---|
| 192 |
| user output |
|---|
| 192 |
Test 15
Group: 1, 2, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 931 656 382 809 666 609 1000 923 ... |
| correct output |
|---|
| 66 |
| user output |
|---|
| 66 |
Test 16
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 10000 1000 961 158 561 313 991 125 821 964 ... |
| correct output |
|---|
| 18 |
| user output |
|---|
| 18 |
Test 17
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 10000 428 1000 485 958 46 915 582 127 ... |
| correct output |
|---|
| 67 |
| user output |
|---|
| 67 |
Test 18
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 10000 10000 503 849 367 829 448 926 362 512 ... |
| correct output |
|---|
| 22 |
| user output |
|---|
| 22 |
Test 19
Group: 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 100000 10000 111 705 808 24 69 858 961 122 ... |
| correct output |
|---|
| 7 |
| user output |
|---|
| 7 |
Test 20
Group: 2, 4
Verdict: ACCEPTED
| input |
|---|
| 10000 100000 844 874 339 315 819 918 627 936 ... |
| correct output |
|---|
| 27 |
| user output |
|---|
| 27 |
Test 21
Group: 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 100 468 303 899 784 458 505 54 ... |
| correct output |
|---|
| 8 |
| user output |
|---|
| 8 |
Test 22
Group: 1, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 451219 220496 369161 161920 241139 700531 811276 993633 ... |
| correct output |
|---|
| 10 |
| user output |
|---|
| 10 |
Test 23
Group: 1, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 337358 113599 674585 852084 717817 983395 895431 391144 ... |
| correct output |
|---|
| 10 |
| user output |
|---|
| 10 |
Test 24
Group: 3, 4
Verdict: ACCEPTED
| input |
|---|
| 10000 10000 636432 664736 341727 37864 469264 360610 545785 879043 ... |
| correct output |
|---|
| 10 |
| user output |
|---|
| 10 |
Test 25
Group: 3, 4
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 750315 55215 550921 465416 435380 742666 288479 495099 ... |
| correct output |
|---|
| 7 |
| user output |
|---|
| 7 |
Test 26
Group: 3, 4
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 416825 677767 347155 162523 602643 936386 181956 517732 ... |
| correct output |
|---|
| 8 |
| user output |
|---|
| 8 |
Test 27
Group: 3, 4
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 155202 457283 421100 55104 604625 136495 841749 569346 ... |
| correct output |
|---|
| 9 |
| user output |
|---|
| 9 |
Test 28
Group: 3, 4
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 290146 808578 489810 268578 956361 635214 939844 534435 ... |
| correct output |
|---|
| 10 |
| user output |
|---|
| 10 |
Test 29
Group: 1, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 668880 791821 226050 188133 859493 736633 290460 838926 ... |
| correct output |
|---|
| 342068 |
| user output |
|---|
| 342068 |
Test 30
Group: 1, 4
Verdict: ACCEPTED
| input |
|---|
| 100 100 729367 697755 338457 742774 535371 701216 93743 555995 ... |
| correct output |
|---|
| 285526 |
| user output |
|---|
| 285526 |
Test 31
Group: 1, 4
Verdict: ACCEPTED
| input |
|---|
| 100 1000 50870 539657 476809 462765 311713 355546 901838 829393 ... |
| correct output |
|---|
| 255789 |
| user output |
|---|
| 255789 |
Test 32
Group: 1, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 100 182415 659794 581623 510256 594984 525993 367726 938015 ... |
| correct output |
|---|
| 50501 |
| user output |
|---|
| 50501 |
Test 33
Group: 1, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 668976 422918 350791 933024 893307 88057 278098 13847 ... |
| correct output |
|---|
| 57897 |
| user output |
|---|
| 57897 |
Test 34
Group: 1, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 701742 116334 278337 368995 187245 133297 273083 369187 ... |
| correct output |
|---|
| 60537 |
| user output |
|---|
| 60537 |
Test 35
Group: 1, 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 693836 74759 61731 520849 666762 45364 559335 979511 ... |
| correct output |
|---|
| 417182 |
| user output |
|---|
| 417182 |
Test 36
Group: 1, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 207572 43521 513003 683552 58800 253576 16541 558695 ... |
| correct output |
|---|
| 69609 |
| user output |
|---|
| 69609 |
Test 37
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 10000 10000 89066 605574 504488 66068 959128 348414 68004 849599 ... |
| correct output |
|---|
| 22936 |
| user output |
|---|
| 22936 |
Test 38
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 20824 214259 463783 904059 603615 769692 789080 399093 ... |
| correct output |
|---|
| 8070 |
| user output |
|---|
| 8070 |
Test 39
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 811424 464350 336948 946495 204883 914446 171888 431769 ... |
| correct output |
|---|
| 8240 |
| user output |
|---|
| 8240 |
Test 40
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 850810 902354 292608 63461 223139 188900 197760 995048 ... |
| correct output |
|---|
| 7769 |
| user output |
|---|
| 7769 |
Test 41
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 1 1 1 2 1 3 1 4 ... |
| correct output |
|---|
| 1899999 |
| user output |
|---|
| 1899999 |
