# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
906809 | 2024-01-15T02:56:31 Z | mathnetic | Roller Coaster Railroad (IOI16_railroad) | C++17 | 543 ms | 29584 KB |
#include <bits/stdc++.h> #include "railroad.h" using namespace std; typedef pair<int, int> P; typedef long long L; unordered_map<int, int> m; int f(int x) { if (m[x] == 0) m[x] = x; return (x == m[x]) ? x : (m[x] = f(m[x])); } void u(int x, int y) { m[f(x)] = f(y); } bool c(P a, P b) { return (a.second - a.first) < (b.second - b.first); } L plan_roller_coaster(vector<int> s, vector<int> t) { L r = 0; s.push_back(1e9); t.push_back(1); int n = s.size(); vector<P> v, d; for (int i = 0; i < n; ++i) { u(s[i], t[i]); v.emplace_back(s[i], 1); v.emplace_back(t[i], -1); } sort(v.begin(), v.end()); int b = 0; for (int i = 0, j = 0; i < v.size(); i = j) { for (; j < v.size() && v[j].first == v[i].first; ++j) { b += v[j].second; } if (!(j >= v.size())) { if (b > 0) { r += static_cast<L>(b) * (v[j].first - v[i].first); } if (b == 0) { d.emplace_back(v[i].first, v[j].first); } else { u(v[j].first, v[i].first); } } } sort(d.begin(), d.end(), c); for (auto i : d) { if (f(i.first) != f(i.second)) { r += i.second - i.first; u(i.first, i.second); } } return r; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | n = 2 |
2 | Correct | 0 ms | 348 KB | n = 2 |
3 | Correct | 0 ms | 348 KB | n = 2 |
4 | Correct | 0 ms | 348 KB | n = 2 |
5 | Correct | 0 ms | 348 KB | n = 2 |
6 | Correct | 0 ms | 348 KB | n = 2 |
7 | Correct | 1 ms | 348 KB | n = 3 |
8 | Correct | 1 ms | 348 KB | n = 3 |
9 | Correct | 0 ms | 348 KB | n = 3 |
10 | Correct | 1 ms | 348 KB | n = 8 |
11 | Correct | 0 ms | 348 KB | n = 8 |
12 | Correct | 0 ms | 348 KB | n = 8 |
13 | Correct | 1 ms | 348 KB | n = 8 |
14 | Correct | 0 ms | 348 KB | n = 8 |
15 | Correct | 1 ms | 344 KB | n = 8 |
16 | Correct | 1 ms | 348 KB | n = 8 |
17 | Correct | 0 ms | 348 KB | n = 8 |
18 | Correct | 0 ms | 348 KB | n = 8 |
19 | Correct | 1 ms | 348 KB | n = 3 |
20 | Correct | 0 ms | 348 KB | n = 7 |
21 | Correct | 1 ms | 344 KB | n = 8 |
22 | Correct | 0 ms | 344 KB | n = 8 |
23 | Correct | 0 ms | 344 KB | n = 8 |
24 | Correct | 1 ms | 348 KB | n = 8 |
25 | Correct | 0 ms | 348 KB | n = 8 |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | n = 2 |
2 | Correct | 0 ms | 348 KB | n = 2 |
3 | Correct | 0 ms | 348 KB | n = 2 |
4 | Correct | 0 ms | 348 KB | n = 2 |
5 | Correct | 0 ms | 348 KB | n = 2 |
6 | Correct | 0 ms | 348 KB | n = 2 |
7 | Correct | 1 ms | 348 KB | n = 3 |
8 | Correct | 1 ms | 348 KB | n = 3 |
9 | Correct | 0 ms | 348 KB | n = 3 |
10 | Correct | 1 ms | 348 KB | n = 8 |
11 | Correct | 0 ms | 348 KB | n = 8 |
12 | Correct | 0 ms | 348 KB | n = 8 |
13 | Correct | 1 ms | 348 KB | n = 8 |
14 | Correct | 0 ms | 348 KB | n = 8 |
15 | Correct | 1 ms | 344 KB | n = 8 |
16 | Correct | 1 ms | 348 KB | n = 8 |
17 | Correct | 0 ms | 348 KB | n = 8 |
18 | Correct | 0 ms | 348 KB | n = 8 |
19 | Correct | 1 ms | 348 KB | n = 3 |
20 | Correct | 0 ms | 348 KB | n = 7 |
21 | Correct | 1 ms | 344 KB | n = 8 |
22 | Correct | 0 ms | 344 KB | n = 8 |
23 | Correct | 0 ms | 344 KB | n = 8 |
24 | Correct | 1 ms | 348 KB | n = 8 |
25 | Correct | 0 ms | 348 KB | n = 8 |
26 | Correct | 0 ms | 348 KB | n = 8 |
27 | Correct | 1 ms | 348 KB | n = 8 |
28 | Correct | 0 ms | 344 KB | n = 8 |
29 | Correct | 0 ms | 348 KB | n = 16 |
30 | Correct | 1 ms | 348 KB | n = 16 |
31 | Correct | 1 ms | 348 KB | n = 16 |
32 | Correct | 1 ms | 344 KB | n = 16 |
33 | Correct | 1 ms | 344 KB | n = 16 |
34 | Correct | 0 ms | 348 KB | n = 16 |
35 | Correct | 0 ms | 348 KB | n = 16 |
36 | Correct | 1 ms | 348 KB | n = 15 |
37 | Correct | 0 ms | 344 KB | n = 8 |
38 | Correct | 1 ms | 348 KB | n = 16 |
39 | Correct | 0 ms | 348 KB | n = 16 |
40 | Correct | 1 ms | 348 KB | n = 9 |
41 | Correct | 0 ms | 348 KB | n = 16 |
42 | Correct | 0 ms | 344 KB | n = 16 |
43 | Correct | 1 ms | 344 KB | n = 16 |
44 | Correct | 0 ms | 348 KB | n = 9 |
45 | Correct | 1 ms | 348 KB | n = 15 |
46 | Correct | 1 ms | 348 KB | n = 16 |
47 | Correct | 0 ms | 348 KB | n = 16 |
48 | Correct | 1 ms | 348 KB | n = 16 |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 342 ms | 26076 KB | n = 199999 |
2 | Correct | 341 ms | 26592 KB | n = 199991 |
3 | Correct | 336 ms | 26336 KB | n = 199993 |
4 | Correct | 191 ms | 19136 KB | n = 152076 |
5 | Correct | 87 ms | 12752 KB | n = 93249 |
6 | Correct | 194 ms | 19704 KB | n = 199910 |
7 | Correct | 313 ms | 25572 KB | n = 199999 |
8 | Correct | 189 ms | 20188 KB | n = 199997 |
9 | Correct | 230 ms | 19392 KB | n = 171294 |
10 | Correct | 242 ms | 19224 KB | n = 140872 |
11 | Correct | 197 ms | 19884 KB | n = 199886 |
12 | Correct | 280 ms | 25828 KB | n = 199996 |
13 | Correct | 207 ms | 20708 KB | n = 200000 |
14 | Correct | 435 ms | 29500 KB | n = 199998 |
15 | Correct | 464 ms | 28704 KB | n = 200000 |
16 | Correct | 487 ms | 29084 KB | n = 199998 |
17 | Correct | 403 ms | 25820 KB | n = 200000 |
18 | Correct | 365 ms | 26420 KB | n = 190000 |
19 | Correct | 280 ms | 25492 KB | n = 177777 |
20 | Correct | 100 ms | 12704 KB | n = 100000 |
21 | Correct | 312 ms | 25484 KB | n = 200000 |
22 | Correct | 534 ms | 28604 KB | n = 200000 |
23 | Correct | 497 ms | 28400 KB | n = 200000 |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | n = 2 |
2 | Correct | 0 ms | 348 KB | n = 2 |
3 | Correct | 0 ms | 348 KB | n = 2 |
4 | Correct | 0 ms | 348 KB | n = 2 |
5 | Correct | 0 ms | 348 KB | n = 2 |
6 | Correct | 0 ms | 348 KB | n = 2 |
7 | Correct | 1 ms | 348 KB | n = 3 |
8 | Correct | 1 ms | 348 KB | n = 3 |
9 | Correct | 0 ms | 348 KB | n = 3 |
10 | Correct | 1 ms | 348 KB | n = 8 |
11 | Correct | 0 ms | 348 KB | n = 8 |
12 | Correct | 0 ms | 348 KB | n = 8 |
13 | Correct | 1 ms | 348 KB | n = 8 |
14 | Correct | 0 ms | 348 KB | n = 8 |
15 | Correct | 1 ms | 344 KB | n = 8 |
16 | Correct | 1 ms | 348 KB | n = 8 |
17 | Correct | 0 ms | 348 KB | n = 8 |
18 | Correct | 0 ms | 348 KB | n = 8 |
19 | Correct | 1 ms | 348 KB | n = 3 |
20 | Correct | 0 ms | 348 KB | n = 7 |
21 | Correct | 1 ms | 344 KB | n = 8 |
22 | Correct | 0 ms | 344 KB | n = 8 |
23 | Correct | 0 ms | 344 KB | n = 8 |
24 | Correct | 1 ms | 348 KB | n = 8 |
25 | Correct | 0 ms | 348 KB | n = 8 |
26 | Correct | 0 ms | 348 KB | n = 8 |
27 | Correct | 1 ms | 348 KB | n = 8 |
28 | Correct | 0 ms | 344 KB | n = 8 |
29 | Correct | 0 ms | 348 KB | n = 16 |
30 | Correct | 1 ms | 348 KB | n = 16 |
31 | Correct | 1 ms | 348 KB | n = 16 |
32 | Correct | 1 ms | 344 KB | n = 16 |
33 | Correct | 1 ms | 344 KB | n = 16 |
34 | Correct | 0 ms | 348 KB | n = 16 |
35 | Correct | 0 ms | 348 KB | n = 16 |
36 | Correct | 1 ms | 348 KB | n = 15 |
37 | Correct | 0 ms | 344 KB | n = 8 |
38 | Correct | 1 ms | 348 KB | n = 16 |
39 | Correct | 0 ms | 348 KB | n = 16 |
40 | Correct | 1 ms | 348 KB | n = 9 |
41 | Correct | 0 ms | 348 KB | n = 16 |
42 | Correct | 0 ms | 344 KB | n = 16 |
43 | Correct | 1 ms | 344 KB | n = 16 |
44 | Correct | 0 ms | 348 KB | n = 9 |
45 | Correct | 1 ms | 348 KB | n = 15 |
46 | Correct | 1 ms | 348 KB | n = 16 |
47 | Correct | 0 ms | 348 KB | n = 16 |
48 | Correct | 1 ms | 348 KB | n = 16 |
49 | Correct | 342 ms | 26076 KB | n = 199999 |
50 | Correct | 341 ms | 26592 KB | n = 199991 |
51 | Correct | 336 ms | 26336 KB | n = 199993 |
52 | Correct | 191 ms | 19136 KB | n = 152076 |
53 | Correct | 87 ms | 12752 KB | n = 93249 |
54 | Correct | 194 ms | 19704 KB | n = 199910 |
55 | Correct | 313 ms | 25572 KB | n = 199999 |
56 | Correct | 189 ms | 20188 KB | n = 199997 |
57 | Correct | 230 ms | 19392 KB | n = 171294 |
58 | Correct | 242 ms | 19224 KB | n = 140872 |
59 | Correct | 197 ms | 19884 KB | n = 199886 |
60 | Correct | 280 ms | 25828 KB | n = 199996 |
61 | Correct | 207 ms | 20708 KB | n = 200000 |
62 | Correct | 435 ms | 29500 KB | n = 199998 |
63 | Correct | 464 ms | 28704 KB | n = 200000 |
64 | Correct | 487 ms | 29084 KB | n = 199998 |
65 | Correct | 403 ms | 25820 KB | n = 200000 |
66 | Correct | 365 ms | 26420 KB | n = 190000 |
67 | Correct | 280 ms | 25492 KB | n = 177777 |
68 | Correct | 100 ms | 12704 KB | n = 100000 |
69 | Correct | 312 ms | 25484 KB | n = 200000 |
70 | Correct | 534 ms | 28604 KB | n = 200000 |
71 | Correct | 497 ms | 28400 KB | n = 200000 |
72 | Correct | 365 ms | 25952 KB | n = 200000 |
73 | Correct | 359 ms | 26380 KB | n = 200000 |
74 | Correct | 355 ms | 26172 KB | n = 200000 |
75 | Correct | 331 ms | 25568 KB | n = 200000 |
76 | Correct | 391 ms | 25572 KB | n = 200000 |
77 | Correct | 133 ms | 16564 KB | n = 200000 |
78 | Correct | 184 ms | 19560 KB | n = 200000 |
79 | Correct | 334 ms | 25696 KB | n = 184307 |
80 | Correct | 74 ms | 9168 KB | n = 76040 |
81 | Correct | 207 ms | 20052 KB | n = 199981 |
82 | Correct | 313 ms | 25444 KB | n = 199994 |
83 | Correct | 219 ms | 20940 KB | n = 199996 |
84 | Correct | 410 ms | 28964 KB | n = 199998 |
85 | Correct | 412 ms | 29220 KB | n = 200000 |
86 | Correct | 451 ms | 29584 KB | n = 199998 |
87 | Correct | 389 ms | 25572 KB | n = 200000 |
88 | Correct | 372 ms | 26320 KB | n = 200000 |
89 | Correct | 356 ms | 25444 KB | n = 200000 |
90 | Correct | 328 ms | 25956 KB | n = 200000 |
91 | Correct | 502 ms | 28620 KB | n = 200000 |
92 | Correct | 543 ms | 28452 KB | n = 200000 |