# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
117956 | 2019-06-17T15:05:33 Z | sealnot123 | Ancient Books (IOI17_books) | C++14 | 235 ms | 26616 KB |
#include "books.h" //#include "grader.cpp" #include<bits/stdc++.h> #define x first #define y second #define pb push_back #define eb emplace_back #define all(a) (a).begin(),(a).end() #define SZ(a) (int)(a).size() using namespace std; typedef long long LL; typedef pair<LL,LL> PLL; typedef pair<int,int> PII; typedef double D; typedef long double LD; const int N = 1000007; int n; int L[N],R[N],G[N]; void extend(int &l, int &r, int &ll, int &rr){ ll = min(ll, min(L[G[l]], L[G[r]])); rr = max(rr, max(R[G[l]], R[G[r]])); while(ll < l || r < rr){ if(ll < l){ l--; ll = min(ll, L[G[l]]); rr = max(rr, R[G[l]]); }else{ r++; ll = min(ll, L[G[r]]); rr = max(rr, R[G[r]]); } } } LL step(int l, int r, int ll, int rr){ LL ans = 0; int i,j,k,a,b,c; while(ll < l || r < rr){ int stepl = 0, stepr = 0, ch = 0; int xll, xrr, x_l, y_l, x_r, y_r; x_l = xll = l; y_l = xrr = r; while(x_l > ll && xrr == r){ stepl += 2; x_l--; extend(x_l, y_l, xll, xrr); } if(xrr == r) ch = 1; x_r = xll = l; y_r = xrr = r; while(y_r < rr && xll == l){ stepr += 2; y_r++; extend(x_r, y_r, xll, xrr); } if(xll == l) ch = 1; if(ch){ ans += stepl + stepr; break; }else{ ans += min(stepl, stepr); l = min(l, min(x_l, x_r)); r = max(r, max(y_l, y_r)); } } return ans; } long long minimum_walk(vector<int> p, int s) { int a, b, c = 0, d, i, j, k; int l = s, r = s; LL ans = 0; n = SZ(p); for(i=0; i<n; i++){ ans += abs(i - p[i]); if(!G[i]){ c++; a = i; L[c] = R[c] = i; do{ G[a] = c; L[c] = min(L[c], a); R[c] = max(R[c], a); a = p[a]; }while(a != i); if(i != p[i]){ l = min(l, L[c]); r = max(r, R[c]); } } } int ll=s, rr=s, lll=s, rrr=s; extend(ll, rr, lll, rrr); // printf("%lld %d %d : %d %d\n", ans, l, r, ll, rr); return ans + step(ll, rr, l, r); } /* 4 0 2 0 1 3 7 4 1 0 6 5 4 2 3 8 4 7 1 2 0 3 5 6 4 8 4 7 5 6 0 3 2 1 4 5 2 3 4 2 0 1 */
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 2 ms | 384 KB | Output is correct |
3 | Correct | 2 ms | 384 KB | Output is correct |
4 | Correct | 2 ms | 384 KB | Output is correct |
5 | Correct | 2 ms | 384 KB | Output is correct |
6 | Correct | 2 ms | 384 KB | Output is correct |
7 | Correct | 2 ms | 384 KB | Output is correct |
8 | Correct | 2 ms | 384 KB | Output is correct |
9 | Correct | 2 ms | 384 KB | Output is correct |
10 | Correct | 2 ms | 384 KB | Output is correct |
11 | Correct | 2 ms | 384 KB | Output is correct |
12 | Correct | 2 ms | 384 KB | Output is correct |
13 | Correct | 3 ms | 384 KB | Output is correct |
14 | Correct | 2 ms | 384 KB | Output is correct |
15 | Correct | 2 ms | 384 KB | Output is correct |
16 | Correct | 2 ms | 384 KB | Output is correct |
17 | Correct | 2 ms | 384 KB | Output is correct |
18 | Correct | 2 ms | 512 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 2 ms | 384 KB | Output is correct |
3 | Correct | 2 ms | 384 KB | Output is correct |
4 | Correct | 2 ms | 384 KB | Output is correct |
5 | Correct | 2 ms | 384 KB | Output is correct |
6 | Correct | 2 ms | 384 KB | Output is correct |
7 | Correct | 2 ms | 384 KB | Output is correct |
8 | Correct | 2 ms | 384 KB | Output is correct |
9 | Correct | 2 ms | 384 KB | Output is correct |
10 | Correct | 2 ms | 384 KB | Output is correct |
11 | Correct | 2 ms | 384 KB | Output is correct |
12 | Correct | 2 ms | 384 KB | Output is correct |
13 | Correct | 3 ms | 384 KB | Output is correct |
14 | Correct | 2 ms | 384 KB | Output is correct |
15 | Correct | 2 ms | 384 KB | Output is correct |
16 | Correct | 2 ms | 384 KB | Output is correct |
17 | Correct | 2 ms | 384 KB | Output is correct |
18 | Correct | 2 ms | 512 KB | Output is correct |
19 | Correct | 2 ms | 384 KB | Output is correct |
20 | Correct | 3 ms | 384 KB | Output is correct |
21 | Correct | 2 ms | 384 KB | Output is correct |
22 | Correct | 2 ms | 384 KB | Output is correct |
23 | Correct | 2 ms | 384 KB | Output is correct |
24 | Correct | 3 ms | 384 KB | Output is correct |
25 | Correct | 2 ms | 384 KB | Output is correct |
26 | Correct | 2 ms | 384 KB | Output is correct |
27 | Correct | 2 ms | 384 KB | Output is correct |
28 | Correct | 2 ms | 384 KB | Output is correct |
29 | Correct | 2 ms | 384 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 2 ms | 384 KB | Output is correct |
3 | Correct | 2 ms | 384 KB | Output is correct |
4 | Correct | 2 ms | 384 KB | Output is correct |
5 | Correct | 2 ms | 384 KB | Output is correct |
6 | Correct | 2 ms | 384 KB | Output is correct |
7 | Correct | 2 ms | 384 KB | Output is correct |
8 | Correct | 2 ms | 384 KB | Output is correct |
9 | Correct | 2 ms | 384 KB | Output is correct |
10 | Correct | 2 ms | 384 KB | Output is correct |
11 | Correct | 2 ms | 384 KB | Output is correct |
12 | Correct | 2 ms | 384 KB | Output is correct |
13 | Correct | 3 ms | 384 KB | Output is correct |
14 | Correct | 2 ms | 384 KB | Output is correct |
15 | Correct | 2 ms | 384 KB | Output is correct |
16 | Correct | 2 ms | 384 KB | Output is correct |
17 | Correct | 2 ms | 384 KB | Output is correct |
18 | Correct | 2 ms | 512 KB | Output is correct |
19 | Correct | 2 ms | 384 KB | Output is correct |
20 | Correct | 3 ms | 384 KB | Output is correct |
21 | Correct | 2 ms | 384 KB | Output is correct |
22 | Correct | 2 ms | 384 KB | Output is correct |
23 | Correct | 2 ms | 384 KB | Output is correct |
24 | Correct | 3 ms | 384 KB | Output is correct |
25 | Correct | 2 ms | 384 KB | Output is correct |
26 | Correct | 2 ms | 384 KB | Output is correct |
27 | Correct | 2 ms | 384 KB | Output is correct |
28 | Correct | 2 ms | 384 KB | Output is correct |
29 | Correct | 2 ms | 384 KB | Output is correct |
30 | Correct | 228 ms | 12128 KB | Output is correct |
31 | Correct | 235 ms | 12024 KB | Output is correct |
32 | Correct | 125 ms | 19960 KB | Output is correct |
33 | Correct | 134 ms | 17500 KB | Output is correct |
34 | Correct | 133 ms | 17508 KB | Output is correct |
35 | Correct | 140 ms | 16376 KB | Output is correct |
36 | Correct | 130 ms | 14072 KB | Output is correct |
37 | Correct | 129 ms | 12280 KB | Output is correct |
38 | Correct | 133 ms | 12156 KB | Output is correct |
39 | Correct | 141 ms | 12136 KB | Output is correct |
40 | Correct | 144 ms | 12152 KB | Output is correct |
41 | Correct | 178 ms | 12096 KB | Output is correct |
42 | Correct | 158 ms | 12024 KB | Output is correct |
43 | Correct | 145 ms | 17912 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 2 ms | 384 KB | Output is correct |
3 | Correct | 2 ms | 384 KB | Output is correct |
4 | Correct | 2 ms | 384 KB | Output is correct |
5 | Correct | 3 ms | 512 KB | Output is correct |
6 | Correct | 2 ms | 384 KB | Output is correct |
7 | Correct | 2 ms | 384 KB | Output is correct |
8 | Correct | 3 ms | 384 KB | Output is correct |
9 | Correct | 2 ms | 384 KB | Output is correct |
10 | Correct | 2 ms | 384 KB | Output is correct |
11 | Correct | 2 ms | 384 KB | Output is correct |
12 | Correct | 3 ms | 384 KB | Output is correct |
13 | Correct | 2 ms | 384 KB | Output is correct |
14 | Correct | 2 ms | 384 KB | Output is correct |
15 | Correct | 2 ms | 384 KB | Output is correct |
16 | Correct | 2 ms | 384 KB | Output is correct |
17 | Correct | 2 ms | 384 KB | Output is correct |
18 | Correct | 2 ms | 384 KB | Output is correct |
19 | Correct | 2 ms | 384 KB | Output is correct |
20 | Correct | 2 ms | 384 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 2 ms | 384 KB | Output is correct |
3 | Correct | 2 ms | 384 KB | Output is correct |
4 | Correct | 2 ms | 384 KB | Output is correct |
5 | Correct | 2 ms | 384 KB | Output is correct |
6 | Correct | 2 ms | 384 KB | Output is correct |
7 | Correct | 2 ms | 384 KB | Output is correct |
8 | Correct | 2 ms | 384 KB | Output is correct |
9 | Correct | 2 ms | 384 KB | Output is correct |
10 | Correct | 2 ms | 384 KB | Output is correct |
11 | Correct | 2 ms | 384 KB | Output is correct |
12 | Correct | 2 ms | 384 KB | Output is correct |
13 | Correct | 3 ms | 384 KB | Output is correct |
14 | Correct | 2 ms | 384 KB | Output is correct |
15 | Correct | 2 ms | 384 KB | Output is correct |
16 | Correct | 2 ms | 384 KB | Output is correct |
17 | Correct | 2 ms | 384 KB | Output is correct |
18 | Correct | 2 ms | 512 KB | Output is correct |
19 | Correct | 2 ms | 384 KB | Output is correct |
20 | Correct | 3 ms | 384 KB | Output is correct |
21 | Correct | 2 ms | 384 KB | Output is correct |
22 | Correct | 2 ms | 384 KB | Output is correct |
23 | Correct | 2 ms | 384 KB | Output is correct |
24 | Correct | 3 ms | 384 KB | Output is correct |
25 | Correct | 2 ms | 384 KB | Output is correct |
26 | Correct | 2 ms | 384 KB | Output is correct |
27 | Correct | 2 ms | 384 KB | Output is correct |
28 | Correct | 2 ms | 384 KB | Output is correct |
29 | Correct | 2 ms | 384 KB | Output is correct |
30 | Correct | 228 ms | 12128 KB | Output is correct |
31 | Correct | 235 ms | 12024 KB | Output is correct |
32 | Correct | 125 ms | 19960 KB | Output is correct |
33 | Correct | 134 ms | 17500 KB | Output is correct |
34 | Correct | 133 ms | 17508 KB | Output is correct |
35 | Correct | 140 ms | 16376 KB | Output is correct |
36 | Correct | 130 ms | 14072 KB | Output is correct |
37 | Correct | 129 ms | 12280 KB | Output is correct |
38 | Correct | 133 ms | 12156 KB | Output is correct |
39 | Correct | 141 ms | 12136 KB | Output is correct |
40 | Correct | 144 ms | 12152 KB | Output is correct |
41 | Correct | 178 ms | 12096 KB | Output is correct |
42 | Correct | 158 ms | 12024 KB | Output is correct |
43 | Correct | 145 ms | 17912 KB | Output is correct |
44 | Correct | 2 ms | 384 KB | Output is correct |
45 | Correct | 2 ms | 384 KB | Output is correct |
46 | Correct | 2 ms | 384 KB | Output is correct |
47 | Correct | 2 ms | 384 KB | Output is correct |
48 | Correct | 3 ms | 512 KB | Output is correct |
49 | Correct | 2 ms | 384 KB | Output is correct |
50 | Correct | 2 ms | 384 KB | Output is correct |
51 | Correct | 3 ms | 384 KB | Output is correct |
52 | Correct | 2 ms | 384 KB | Output is correct |
53 | Correct | 2 ms | 384 KB | Output is correct |
54 | Correct | 2 ms | 384 KB | Output is correct |
55 | Correct | 3 ms | 384 KB | Output is correct |
56 | Correct | 2 ms | 384 KB | Output is correct |
57 | Correct | 2 ms | 384 KB | Output is correct |
58 | Correct | 2 ms | 384 KB | Output is correct |
59 | Correct | 2 ms | 384 KB | Output is correct |
60 | Correct | 2 ms | 384 KB | Output is correct |
61 | Correct | 2 ms | 384 KB | Output is correct |
62 | Correct | 2 ms | 384 KB | Output is correct |
63 | Correct | 2 ms | 384 KB | Output is correct |
64 | Correct | 130 ms | 24584 KB | Output is correct |
65 | Correct | 131 ms | 25240 KB | Output is correct |
66 | Correct | 132 ms | 19148 KB | Output is correct |
67 | Correct | 131 ms | 18936 KB | Output is correct |
68 | Correct | 14 ms | 2304 KB | Output is correct |
69 | Correct | 15 ms | 2176 KB | Output is correct |
70 | Correct | 14 ms | 2432 KB | Output is correct |
71 | Correct | 15 ms | 2660 KB | Output is correct |
72 | Correct | 14 ms | 2816 KB | Output is correct |
73 | Correct | 16 ms | 2176 KB | Output is correct |
74 | Correct | 135 ms | 24308 KB | Output is correct |
75 | Correct | 133 ms | 24304 KB | Output is correct |
76 | Correct | 133 ms | 24584 KB | Output is correct |
77 | Correct | 134 ms | 24568 KB | Output is correct |
78 | Correct | 134 ms | 23760 KB | Output is correct |
79 | Correct | 134 ms | 23772 KB | Output is correct |
80 | Correct | 123 ms | 26616 KB | Output is correct |
81 | Correct | 136 ms | 22776 KB | Output is correct |
82 | Correct | 137 ms | 22776 KB | Output is correct |
83 | Correct | 142 ms | 21856 KB | Output is correct |
84 | Correct | 137 ms | 21348 KB | Output is correct |
85 | Correct | 134 ms | 19936 KB | Output is correct |
86 | Correct | 138 ms | 19336 KB | Output is correct |
87 | Correct | 150 ms | 25464 KB | Output is correct |
88 | Correct | 141 ms | 24516 KB | Output is correct |
89 | Correct | 136 ms | 22364 KB | Output is correct |
90 | Correct | 128 ms | 18936 KB | Output is correct |
91 | Correct | 132 ms | 18912 KB | Output is correct |
92 | Correct | 145 ms | 18948 KB | Output is correct |