답안 #293301

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
293301 2020-09-07T20:50:47 Z peti1234 Roller Coaster Railroad (IOI16_railroad) C++17
100 / 100
209 ms 21356 KB
#include <bits/stdc++.h>

using namespace std;
const int c=200003;
long long n, sum, si, dbe, dki, hv[c], o=0;
vector<pair<int, int> >sz;
vector<pair<int, pair<int, int> > > el;
int holvan(int a) {
    if (!hv[a]) return a;
    int x=holvan(hv[a]);
    hv[a]=x;
    return x;
}
void unio(int a, int b) {
    a=holvan(a), b=holvan(b);
    if (a!=b) hv[a]=b;
}
long long plan_roller_coaster(vector<int> b, vector<int> a) {
    n=a.size();
    for (int i=0; i<n; i++) {
        sz.push_back({a[i], -(i+1)});
        sz.push_back({b[i], i+1});
    }
    n++, dki++;
    sz.push_back({1e9, n}), sz.push_back({1, -n});
    si=sz.size();
    sort(sz.begin(), sz.end());
    for (int i=1; i<si; i++) {
        long long bal=dbe-dki, id=sz[i].second, pr=sz[i-1].second, kul=sz[i].first-sz[i-1].first;
        if (bal!=0) {
            sum+=max(o, bal*kul);
            unio(abs(id), abs(pr));
        }
        el.push_back({kul, {abs(id), abs(pr)}});
        if (id>0) dbe++;
        else dki++;
    }
    sort(el.begin(), el.end());
    for (int i=0; i<el.size(); i++) {
        int d=el[i].first, x=el[i].second.first, y=el[i].second.second;
        if (holvan(x)!=holvan(y)) sum+=d, unio(x, y);
    }
    return sum;
}

Compilation message

railroad.cpp: In function 'long long int plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:39:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, std::pair<int, int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |     for (int i=0; i<el.size(); i++) {
      |                   ~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB n = 2
2 Correct 0 ms 256 KB n = 2
3 Correct 1 ms 256 KB n = 2
4 Correct 1 ms 256 KB n = 2
5 Correct 0 ms 256 KB n = 2
6 Correct 0 ms 256 KB n = 2
7 Correct 0 ms 256 KB n = 3
8 Correct 1 ms 416 KB n = 3
9 Correct 0 ms 256 KB n = 3
10 Correct 1 ms 256 KB n = 8
11 Correct 0 ms 256 KB n = 8
12 Correct 1 ms 256 KB n = 8
13 Correct 0 ms 256 KB n = 8
14 Correct 0 ms 384 KB n = 8
15 Correct 0 ms 256 KB n = 8
16 Correct 0 ms 256 KB n = 8
17 Correct 1 ms 256 KB n = 8
18 Correct 0 ms 256 KB n = 8
19 Correct 0 ms 256 KB n = 3
20 Correct 0 ms 384 KB n = 7
21 Correct 0 ms 256 KB n = 8
22 Correct 1 ms 256 KB n = 8
23 Correct 1 ms 376 KB n = 8
24 Correct 1 ms 256 KB n = 8
25 Correct 1 ms 256 KB n = 8
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB n = 2
2 Correct 0 ms 256 KB n = 2
3 Correct 1 ms 256 KB n = 2
4 Correct 1 ms 256 KB n = 2
5 Correct 0 ms 256 KB n = 2
6 Correct 0 ms 256 KB n = 2
7 Correct 0 ms 256 KB n = 3
8 Correct 1 ms 416 KB n = 3
9 Correct 0 ms 256 KB n = 3
10 Correct 1 ms 256 KB n = 8
11 Correct 0 ms 256 KB n = 8
12 Correct 1 ms 256 KB n = 8
13 Correct 0 ms 256 KB n = 8
14 Correct 0 ms 384 KB n = 8
15 Correct 0 ms 256 KB n = 8
16 Correct 0 ms 256 KB n = 8
17 Correct 1 ms 256 KB n = 8
18 Correct 0 ms 256 KB n = 8
19 Correct 0 ms 256 KB n = 3
20 Correct 0 ms 384 KB n = 7
21 Correct 0 ms 256 KB n = 8
22 Correct 1 ms 256 KB n = 8
23 Correct 1 ms 376 KB n = 8
24 Correct 1 ms 256 KB n = 8
25 Correct 1 ms 256 KB n = 8
26 Correct 0 ms 256 KB n = 8
27 Correct 1 ms 384 KB n = 8
28 Correct 1 ms 256 KB n = 8
29 Correct 0 ms 384 KB n = 16
30 Correct 1 ms 256 KB n = 16
31 Correct 0 ms 384 KB n = 16
32 Correct 1 ms 384 KB n = 16
33 Correct 0 ms 288 KB n = 16
34 Correct 0 ms 256 KB n = 16
35 Correct 1 ms 384 KB n = 16
36 Correct 0 ms 384 KB n = 15
37 Correct 1 ms 256 KB n = 8
38 Correct 1 ms 384 KB n = 16
39 Correct 0 ms 384 KB n = 16
40 Correct 0 ms 384 KB n = 9
41 Correct 1 ms 384 KB n = 16
42 Correct 0 ms 384 KB n = 16
43 Correct 1 ms 384 KB n = 16
44 Correct 1 ms 256 KB n = 9
45 Correct 1 ms 384 KB n = 15
46 Correct 0 ms 384 KB n = 16
47 Correct 0 ms 384 KB n = 16
48 Correct 1 ms 256 KB n = 16
# 결과 실행 시간 메모리 Grader output
1 Correct 187 ms 17504 KB n = 199999
2 Correct 194 ms 21356 KB n = 199991
3 Correct 190 ms 21216 KB n = 199993
4 Correct 142 ms 18148 KB n = 152076
5 Correct 87 ms 10344 KB n = 93249
6 Correct 178 ms 20064 KB n = 199910
7 Correct 183 ms 20576 KB n = 199999
8 Correct 179 ms 20192 KB n = 199997
9 Correct 164 ms 19424 KB n = 171294
10 Correct 135 ms 17760 KB n = 140872
11 Correct 185 ms 20192 KB n = 199886
12 Correct 199 ms 20576 KB n = 199996
13 Correct 188 ms 20192 KB n = 200000
14 Correct 199 ms 20448 KB n = 199998
15 Correct 199 ms 20448 KB n = 200000
16 Correct 209 ms 20836 KB n = 199998
17 Correct 187 ms 21216 KB n = 200000
18 Correct 184 ms 20704 KB n = 190000
19 Correct 166 ms 20020 KB n = 177777
20 Correct 93 ms 10856 KB n = 100000
21 Correct 194 ms 21220 KB n = 200000
22 Correct 207 ms 21276 KB n = 200000
23 Correct 195 ms 21216 KB n = 200000
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB n = 2
2 Correct 0 ms 256 KB n = 2
3 Correct 1 ms 256 KB n = 2
4 Correct 1 ms 256 KB n = 2
5 Correct 0 ms 256 KB n = 2
6 Correct 0 ms 256 KB n = 2
7 Correct 0 ms 256 KB n = 3
8 Correct 1 ms 416 KB n = 3
9 Correct 0 ms 256 KB n = 3
10 Correct 1 ms 256 KB n = 8
11 Correct 0 ms 256 KB n = 8
12 Correct 1 ms 256 KB n = 8
13 Correct 0 ms 256 KB n = 8
14 Correct 0 ms 384 KB n = 8
15 Correct 0 ms 256 KB n = 8
16 Correct 0 ms 256 KB n = 8
17 Correct 1 ms 256 KB n = 8
18 Correct 0 ms 256 KB n = 8
19 Correct 0 ms 256 KB n = 3
20 Correct 0 ms 384 KB n = 7
21 Correct 0 ms 256 KB n = 8
22 Correct 1 ms 256 KB n = 8
23 Correct 1 ms 376 KB n = 8
24 Correct 1 ms 256 KB n = 8
25 Correct 1 ms 256 KB n = 8
26 Correct 0 ms 256 KB n = 8
27 Correct 1 ms 384 KB n = 8
28 Correct 1 ms 256 KB n = 8
29 Correct 0 ms 384 KB n = 16
30 Correct 1 ms 256 KB n = 16
31 Correct 0 ms 384 KB n = 16
32 Correct 1 ms 384 KB n = 16
33 Correct 0 ms 288 KB n = 16
34 Correct 0 ms 256 KB n = 16
35 Correct 1 ms 384 KB n = 16
36 Correct 0 ms 384 KB n = 15
37 Correct 1 ms 256 KB n = 8
38 Correct 1 ms 384 KB n = 16
39 Correct 0 ms 384 KB n = 16
40 Correct 0 ms 384 KB n = 9
41 Correct 1 ms 384 KB n = 16
42 Correct 0 ms 384 KB n = 16
43 Correct 1 ms 384 KB n = 16
44 Correct 1 ms 256 KB n = 9
45 Correct 1 ms 384 KB n = 15
46 Correct 0 ms 384 KB n = 16
47 Correct 0 ms 384 KB n = 16
48 Correct 1 ms 256 KB n = 16
49 Correct 187 ms 17504 KB n = 199999
50 Correct 194 ms 21356 KB n = 199991
51 Correct 190 ms 21216 KB n = 199993
52 Correct 142 ms 18148 KB n = 152076
53 Correct 87 ms 10344 KB n = 93249
54 Correct 178 ms 20064 KB n = 199910
55 Correct 183 ms 20576 KB n = 199999
56 Correct 179 ms 20192 KB n = 199997
57 Correct 164 ms 19424 KB n = 171294
58 Correct 135 ms 17760 KB n = 140872
59 Correct 185 ms 20192 KB n = 199886
60 Correct 199 ms 20576 KB n = 199996
61 Correct 188 ms 20192 KB n = 200000
62 Correct 199 ms 20448 KB n = 199998
63 Correct 199 ms 20448 KB n = 200000
64 Correct 209 ms 20836 KB n = 199998
65 Correct 187 ms 21216 KB n = 200000
66 Correct 184 ms 20704 KB n = 190000
67 Correct 166 ms 20020 KB n = 177777
68 Correct 93 ms 10856 KB n = 100000
69 Correct 194 ms 21220 KB n = 200000
70 Correct 207 ms 21276 KB n = 200000
71 Correct 195 ms 21216 KB n = 200000
72 Correct 202 ms 21216 KB n = 200000
73 Correct 197 ms 21268 KB n = 200000
74 Correct 188 ms 21220 KB n = 200000
75 Correct 188 ms 21216 KB n = 200000
76 Correct 191 ms 21216 KB n = 200000
77 Correct 186 ms 21220 KB n = 200000
78 Correct 179 ms 19808 KB n = 200000
79 Correct 179 ms 20196 KB n = 184307
80 Correct 71 ms 9424 KB n = 76040
81 Correct 185 ms 20192 KB n = 199981
82 Correct 194 ms 20744 KB n = 199994
83 Correct 186 ms 20212 KB n = 199996
84 Correct 205 ms 20456 KB n = 199998
85 Correct 203 ms 20576 KB n = 200000
86 Correct 204 ms 20832 KB n = 199998
87 Correct 187 ms 21216 KB n = 200000
88 Correct 198 ms 21344 KB n = 200000
89 Correct 189 ms 21216 KB n = 200000
90 Correct 196 ms 21216 KB n = 200000
91 Correct 206 ms 21272 KB n = 200000
92 Correct 192 ms 21216 KB n = 200000