#include <bits/stdc++.h>
#define ll long long
#define db long double
#define II pair <ll,ll>
#define III pair <ll,II>
#define IV pair <vector <int>,vector <int> >
#define IDB pair <db,int>
#define TII pair <treap*,treap*>
#define fst first
#define snd second
#define BIT(x,i) ((x>>i)&1)
#define pi acos(-1)
#define to_radian(x) (x*pi/180.0)
#define to_degree(x) (x*180.0/pi)
#define Log(x) (31-__builtin_clz((int)x))
#define LogLL(x) (63-__builtin_clzll((ll)x))
using namespace std;
#include "railroad.h"
const int oo=2e9;
ll Real[400005],r[400005],u,U[400005],D[400005];
int root(int u) { return u==r[u] ? u : r[u]=root(r[u]); }
struct edge { int u,v,w; } e[400005];
bool join(int u,int v)
{
u=root(u); v=root(v);
if(u==v) return 0;
r[u]=v;
return 1;
}
ll plan_roller_coaster(vector <int> s,vector <int> t)
{
set <int> val;
map <int,int> rr;
val.insert(1);
val.insert(oo);
for(int x:s) val.insert(x);
for(int x:t) val.insert(x);
int n_val=0;
for(int x:val) rr[x]=++n_val,Real[n_val]=x;
int n=s.size(),i,up=0,down=0;
ll res=0;
for(u=1;u<=n_val;u++) r[u]=u;
D[1]++; D[n_val]--;
join(1,n_val);
for(i=0;i<n;i++)
{
s[i]=rr[s[i]]; t[i]=rr[t[i]];
if(s[i]<=t[i]) U[s[i]]++,U[t[i]]--;
else D[t[i]]++,D[s[i]]--;
join(s[i],t[i]);
}
for(i=1;i<n_val;i++)
{
up+=U[i]; down+=D[i];
res+=max(0,up-down)*(Real[i+1]-Real[i]);
if(up!=down) join(i,i+1);
e[i]={ i,i+1,Real[i+1]-Real[i] };
}
sort(e+1,e+n_val,[&](edge a,edge b){ return a.w<b.w; });
for(i=1;i<n_val;i++)
if(join(e[i].u,e[i].v)) res+=e[i].w;
return res;
}
/*
int main()
{
freopen("railroad.inp","r",stdin);
freopen("railroad.out","w",stdout);
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
vector <int> s,t;
int l,r;
while(cin>>l>>r) s.push_back(l),t.push_back(r);
cout<<plan_roller_coaster(s,t);
}
*/
Compilation message
railroad.cpp: In function 'long long int plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:60:31: warning: narrowing conversion of '(Real[(i + 1)] - Real[i])' from 'long long int' to 'int' [-Wnarrowing]
60 | e[i]={ i,i+1,Real[i+1]-Real[i] };
| ~~~~~~~~~^~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
6492 KB |
n = 2 |
2 |
Correct |
1 ms |
6492 KB |
n = 2 |
3 |
Correct |
1 ms |
6492 KB |
n = 2 |
4 |
Correct |
1 ms |
6492 KB |
n = 2 |
5 |
Correct |
1 ms |
8540 KB |
n = 2 |
6 |
Correct |
1 ms |
8540 KB |
n = 2 |
7 |
Correct |
1 ms |
6492 KB |
n = 3 |
8 |
Correct |
1 ms |
8540 KB |
n = 3 |
9 |
Correct |
1 ms |
8536 KB |
n = 3 |
10 |
Correct |
1 ms |
6492 KB |
n = 8 |
11 |
Correct |
1 ms |
8540 KB |
n = 8 |
12 |
Correct |
1 ms |
8540 KB |
n = 8 |
13 |
Correct |
1 ms |
8540 KB |
n = 8 |
14 |
Correct |
1 ms |
6492 KB |
n = 8 |
15 |
Correct |
1 ms |
8536 KB |
n = 8 |
16 |
Correct |
1 ms |
8540 KB |
n = 8 |
17 |
Correct |
1 ms |
8540 KB |
n = 8 |
18 |
Correct |
1 ms |
8540 KB |
n = 8 |
19 |
Correct |
1 ms |
6492 KB |
n = 3 |
20 |
Correct |
1 ms |
8540 KB |
n = 7 |
21 |
Correct |
1 ms |
8540 KB |
n = 8 |
22 |
Correct |
1 ms |
8540 KB |
n = 8 |
23 |
Correct |
1 ms |
8540 KB |
n = 8 |
24 |
Correct |
1 ms |
8540 KB |
n = 8 |
25 |
Correct |
1 ms |
6492 KB |
n = 8 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
6492 KB |
n = 2 |
2 |
Correct |
1 ms |
6492 KB |
n = 2 |
3 |
Correct |
1 ms |
6492 KB |
n = 2 |
4 |
Correct |
1 ms |
6492 KB |
n = 2 |
5 |
Correct |
1 ms |
8540 KB |
n = 2 |
6 |
Correct |
1 ms |
8540 KB |
n = 2 |
7 |
Correct |
1 ms |
6492 KB |
n = 3 |
8 |
Correct |
1 ms |
8540 KB |
n = 3 |
9 |
Correct |
1 ms |
8536 KB |
n = 3 |
10 |
Correct |
1 ms |
6492 KB |
n = 8 |
11 |
Correct |
1 ms |
8540 KB |
n = 8 |
12 |
Correct |
1 ms |
8540 KB |
n = 8 |
13 |
Correct |
1 ms |
8540 KB |
n = 8 |
14 |
Correct |
1 ms |
6492 KB |
n = 8 |
15 |
Correct |
1 ms |
8536 KB |
n = 8 |
16 |
Correct |
1 ms |
8540 KB |
n = 8 |
17 |
Correct |
1 ms |
8540 KB |
n = 8 |
18 |
Correct |
1 ms |
8540 KB |
n = 8 |
19 |
Correct |
1 ms |
6492 KB |
n = 3 |
20 |
Correct |
1 ms |
8540 KB |
n = 7 |
21 |
Correct |
1 ms |
8540 KB |
n = 8 |
22 |
Correct |
1 ms |
8540 KB |
n = 8 |
23 |
Correct |
1 ms |
8540 KB |
n = 8 |
24 |
Correct |
1 ms |
8540 KB |
n = 8 |
25 |
Correct |
1 ms |
6492 KB |
n = 8 |
26 |
Correct |
2 ms |
8796 KB |
n = 8 |
27 |
Correct |
1 ms |
8540 KB |
n = 8 |
28 |
Correct |
1 ms |
8540 KB |
n = 8 |
29 |
Correct |
1 ms |
6492 KB |
n = 16 |
30 |
Correct |
1 ms |
8540 KB |
n = 16 |
31 |
Correct |
1 ms |
8536 KB |
n = 16 |
32 |
Correct |
1 ms |
8540 KB |
n = 16 |
33 |
Correct |
1 ms |
6492 KB |
n = 16 |
34 |
Correct |
1 ms |
8540 KB |
n = 16 |
35 |
Correct |
1 ms |
8540 KB |
n = 16 |
36 |
Correct |
1 ms |
8540 KB |
n = 15 |
37 |
Correct |
1 ms |
8540 KB |
n = 8 |
38 |
Correct |
1 ms |
8540 KB |
n = 16 |
39 |
Correct |
1 ms |
8540 KB |
n = 16 |
40 |
Correct |
1 ms |
8540 KB |
n = 9 |
41 |
Correct |
1 ms |
8540 KB |
n = 16 |
42 |
Correct |
1 ms |
8540 KB |
n = 16 |
43 |
Correct |
1 ms |
6492 KB |
n = 16 |
44 |
Correct |
1 ms |
8540 KB |
n = 9 |
45 |
Correct |
2 ms |
8536 KB |
n = 15 |
46 |
Correct |
1 ms |
8540 KB |
n = 16 |
47 |
Correct |
1 ms |
8540 KB |
n = 16 |
48 |
Correct |
1 ms |
8540 KB |
n = 16 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
517 ms |
56148 KB |
n = 199999 |
2 |
Correct |
522 ms |
61520 KB |
n = 199991 |
3 |
Correct |
506 ms |
61688 KB |
n = 199993 |
4 |
Correct |
333 ms |
50004 KB |
n = 152076 |
5 |
Correct |
211 ms |
35372 KB |
n = 93249 |
6 |
Correct |
386 ms |
53072 KB |
n = 199910 |
7 |
Correct |
455 ms |
60588 KB |
n = 199999 |
8 |
Correct |
405 ms |
53856 KB |
n = 199997 |
9 |
Correct |
418 ms |
54608 KB |
n = 171294 |
10 |
Correct |
311 ms |
47984 KB |
n = 140872 |
11 |
Correct |
398 ms |
53776 KB |
n = 199886 |
12 |
Correct |
460 ms |
61476 KB |
n = 199996 |
13 |
Correct |
398 ms |
55892 KB |
n = 200000 |
14 |
Correct |
441 ms |
61736 KB |
n = 199998 |
15 |
Correct |
429 ms |
60740 KB |
n = 200000 |
16 |
Correct |
458 ms |
62308 KB |
n = 199998 |
17 |
Correct |
500 ms |
64596 KB |
n = 200000 |
18 |
Correct |
483 ms |
59900 KB |
n = 190000 |
19 |
Correct |
386 ms |
57028 KB |
n = 177777 |
20 |
Correct |
181 ms |
39236 KB |
n = 100000 |
21 |
Correct |
480 ms |
62184 KB |
n = 200000 |
22 |
Correct |
464 ms |
62032 KB |
n = 200000 |
23 |
Correct |
482 ms |
62236 KB |
n = 200000 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
6492 KB |
n = 2 |
2 |
Correct |
1 ms |
6492 KB |
n = 2 |
3 |
Correct |
1 ms |
6492 KB |
n = 2 |
4 |
Correct |
1 ms |
6492 KB |
n = 2 |
5 |
Correct |
1 ms |
8540 KB |
n = 2 |
6 |
Correct |
1 ms |
8540 KB |
n = 2 |
7 |
Correct |
1 ms |
6492 KB |
n = 3 |
8 |
Correct |
1 ms |
8540 KB |
n = 3 |
9 |
Correct |
1 ms |
8536 KB |
n = 3 |
10 |
Correct |
1 ms |
6492 KB |
n = 8 |
11 |
Correct |
1 ms |
8540 KB |
n = 8 |
12 |
Correct |
1 ms |
8540 KB |
n = 8 |
13 |
Correct |
1 ms |
8540 KB |
n = 8 |
14 |
Correct |
1 ms |
6492 KB |
n = 8 |
15 |
Correct |
1 ms |
8536 KB |
n = 8 |
16 |
Correct |
1 ms |
8540 KB |
n = 8 |
17 |
Correct |
1 ms |
8540 KB |
n = 8 |
18 |
Correct |
1 ms |
8540 KB |
n = 8 |
19 |
Correct |
1 ms |
6492 KB |
n = 3 |
20 |
Correct |
1 ms |
8540 KB |
n = 7 |
21 |
Correct |
1 ms |
8540 KB |
n = 8 |
22 |
Correct |
1 ms |
8540 KB |
n = 8 |
23 |
Correct |
1 ms |
8540 KB |
n = 8 |
24 |
Correct |
1 ms |
8540 KB |
n = 8 |
25 |
Correct |
1 ms |
6492 KB |
n = 8 |
26 |
Correct |
2 ms |
8796 KB |
n = 8 |
27 |
Correct |
1 ms |
8540 KB |
n = 8 |
28 |
Correct |
1 ms |
8540 KB |
n = 8 |
29 |
Correct |
1 ms |
6492 KB |
n = 16 |
30 |
Correct |
1 ms |
8540 KB |
n = 16 |
31 |
Correct |
1 ms |
8536 KB |
n = 16 |
32 |
Correct |
1 ms |
8540 KB |
n = 16 |
33 |
Correct |
1 ms |
6492 KB |
n = 16 |
34 |
Correct |
1 ms |
8540 KB |
n = 16 |
35 |
Correct |
1 ms |
8540 KB |
n = 16 |
36 |
Correct |
1 ms |
8540 KB |
n = 15 |
37 |
Correct |
1 ms |
8540 KB |
n = 8 |
38 |
Correct |
1 ms |
8540 KB |
n = 16 |
39 |
Correct |
1 ms |
8540 KB |
n = 16 |
40 |
Correct |
1 ms |
8540 KB |
n = 9 |
41 |
Correct |
1 ms |
8540 KB |
n = 16 |
42 |
Correct |
1 ms |
8540 KB |
n = 16 |
43 |
Correct |
1 ms |
6492 KB |
n = 16 |
44 |
Correct |
1 ms |
8540 KB |
n = 9 |
45 |
Correct |
2 ms |
8536 KB |
n = 15 |
46 |
Correct |
1 ms |
8540 KB |
n = 16 |
47 |
Correct |
1 ms |
8540 KB |
n = 16 |
48 |
Correct |
1 ms |
8540 KB |
n = 16 |
49 |
Correct |
517 ms |
56148 KB |
n = 199999 |
50 |
Correct |
522 ms |
61520 KB |
n = 199991 |
51 |
Correct |
506 ms |
61688 KB |
n = 199993 |
52 |
Correct |
333 ms |
50004 KB |
n = 152076 |
53 |
Correct |
211 ms |
35372 KB |
n = 93249 |
54 |
Correct |
386 ms |
53072 KB |
n = 199910 |
55 |
Correct |
455 ms |
60588 KB |
n = 199999 |
56 |
Correct |
405 ms |
53856 KB |
n = 199997 |
57 |
Correct |
418 ms |
54608 KB |
n = 171294 |
58 |
Correct |
311 ms |
47984 KB |
n = 140872 |
59 |
Correct |
398 ms |
53776 KB |
n = 199886 |
60 |
Correct |
460 ms |
61476 KB |
n = 199996 |
61 |
Correct |
398 ms |
55892 KB |
n = 200000 |
62 |
Correct |
441 ms |
61736 KB |
n = 199998 |
63 |
Correct |
429 ms |
60740 KB |
n = 200000 |
64 |
Correct |
458 ms |
62308 KB |
n = 199998 |
65 |
Correct |
500 ms |
64596 KB |
n = 200000 |
66 |
Correct |
483 ms |
59900 KB |
n = 190000 |
67 |
Correct |
386 ms |
57028 KB |
n = 177777 |
68 |
Correct |
181 ms |
39236 KB |
n = 100000 |
69 |
Correct |
480 ms |
62184 KB |
n = 200000 |
70 |
Correct |
464 ms |
62032 KB |
n = 200000 |
71 |
Correct |
482 ms |
62236 KB |
n = 200000 |
72 |
Correct |
518 ms |
60208 KB |
n = 200000 |
73 |
Correct |
526 ms |
62048 KB |
n = 200000 |
74 |
Correct |
517 ms |
62032 KB |
n = 200000 |
75 |
Correct |
441 ms |
62336 KB |
n = 200000 |
76 |
Correct |
434 ms |
60108 KB |
n = 200000 |
77 |
Correct |
250 ms |
45140 KB |
n = 200000 |
78 |
Correct |
264 ms |
42636 KB |
n = 200000 |
79 |
Correct |
447 ms |
58452 KB |
n = 184307 |
80 |
Correct |
134 ms |
31876 KB |
n = 76040 |
81 |
Correct |
399 ms |
54332 KB |
n = 199981 |
82 |
Correct |
471 ms |
61268 KB |
n = 199994 |
83 |
Correct |
404 ms |
56036 KB |
n = 199996 |
84 |
Correct |
474 ms |
61820 KB |
n = 199998 |
85 |
Correct |
432 ms |
60632 KB |
n = 200000 |
86 |
Correct |
459 ms |
62288 KB |
n = 199998 |
87 |
Correct |
474 ms |
64464 KB |
n = 200000 |
88 |
Correct |
513 ms |
62976 KB |
n = 200000 |
89 |
Correct |
463 ms |
62516 KB |
n = 200000 |
90 |
Correct |
484 ms |
62232 KB |
n = 200000 |
91 |
Correct |
466 ms |
62088 KB |
n = 200000 |
92 |
Correct |
499 ms |
62240 KB |
n = 200000 |