# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
239105 |
2020-06-14T11:54:30 Z |
lyc |
Ancient Books (IOI17_books) |
C++14 |
|
225 ms |
16120 KB |
#include "books.h"
#include <bits/stdc++.h>
using namespace std;
#define TRACE(x) cout << #x << " :: " << x << endl;
#define _ << " " <<
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
#define RFOR(i,a,b) for(int i=(a);i>=(b);--i)
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(),(x).end()
const int mxN = 1e6+5;
int N, L, R;
int go[mxN][2];
void ext(int& l, int& r) {
int x = l, y = r;
do {
if (l >= x) {
FOR(j,0,1) if (go[l][j] != -1) {
x = min(x,go[l][j]), y = max(y,go[l][j]);
}
--l;
}
if (r <= y) {
FOR(j,0,1) if (go[r][j] != -1) {
x = min(x,go[r][j]), y = max(y,go[r][j]);
}
++r;
}
} while (x <= l || r <= y);
l = x, r = y;
}
long long minimum_walk(std::vector<int> p, int s) {
N = SZ(p);
long long lb = 0;
L = N-1, R = 0;
memset(go,-1,sizeof go);
FOR(i,0,N-1){
if (i != p[i]) {
lb += abs(p[i]-i);
L = min({L,i,p[i]}), R = max({R,i,p[i]});
FOR(j,0,1) if (go[i][j] == -1) { go[i][j] = p[i]; break; }
FOR(j,0,1) if (go[p[i]][j] == -1) { go[p[i]][j] = i; break; }
}
}
long long add = 0;
int l = s, r = s;
for (;;) {
ext(l,r);
if (l <= L && r >= R) break;
int ll = l, rr = r;
do {
if (l >= 0) --l;
if (r < N) ++r;
add += 2;
if (l >= 0 && go[l][0] != -1) {
r = rr;
break;
} else if (r < N && go[r][0] != -1) {
l = ll;
break;
}
} while (true);
}
//TRACE(lb _ add);
return lb + add;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
8192 KB |
Output is correct |
2 |
Correct |
8 ms |
8192 KB |
Output is correct |
3 |
Correct |
10 ms |
8192 KB |
Output is correct |
4 |
Correct |
8 ms |
8192 KB |
Output is correct |
5 |
Correct |
8 ms |
8116 KB |
Output is correct |
6 |
Correct |
8 ms |
8192 KB |
Output is correct |
7 |
Correct |
8 ms |
8192 KB |
Output is correct |
8 |
Correct |
8 ms |
8192 KB |
Output is correct |
9 |
Correct |
9 ms |
8192 KB |
Output is correct |
10 |
Correct |
10 ms |
8192 KB |
Output is correct |
11 |
Correct |
8 ms |
8192 KB |
Output is correct |
12 |
Correct |
9 ms |
8096 KB |
Output is correct |
13 |
Correct |
9 ms |
8136 KB |
Output is correct |
14 |
Correct |
9 ms |
8192 KB |
Output is correct |
15 |
Correct |
8 ms |
8192 KB |
Output is correct |
16 |
Correct |
8 ms |
8192 KB |
Output is correct |
17 |
Correct |
9 ms |
8192 KB |
Output is correct |
18 |
Correct |
8 ms |
8192 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
8192 KB |
Output is correct |
2 |
Correct |
8 ms |
8192 KB |
Output is correct |
3 |
Correct |
10 ms |
8192 KB |
Output is correct |
4 |
Correct |
8 ms |
8192 KB |
Output is correct |
5 |
Correct |
8 ms |
8116 KB |
Output is correct |
6 |
Correct |
8 ms |
8192 KB |
Output is correct |
7 |
Correct |
8 ms |
8192 KB |
Output is correct |
8 |
Correct |
8 ms |
8192 KB |
Output is correct |
9 |
Correct |
9 ms |
8192 KB |
Output is correct |
10 |
Correct |
10 ms |
8192 KB |
Output is correct |
11 |
Correct |
8 ms |
8192 KB |
Output is correct |
12 |
Correct |
9 ms |
8096 KB |
Output is correct |
13 |
Correct |
9 ms |
8136 KB |
Output is correct |
14 |
Correct |
9 ms |
8192 KB |
Output is correct |
15 |
Correct |
8 ms |
8192 KB |
Output is correct |
16 |
Correct |
8 ms |
8192 KB |
Output is correct |
17 |
Correct |
9 ms |
8192 KB |
Output is correct |
18 |
Correct |
8 ms |
8192 KB |
Output is correct |
19 |
Correct |
8 ms |
8192 KB |
Output is correct |
20 |
Correct |
8 ms |
8192 KB |
Output is correct |
21 |
Correct |
8 ms |
8192 KB |
Output is correct |
22 |
Correct |
8 ms |
8192 KB |
Output is correct |
23 |
Correct |
9 ms |
8192 KB |
Output is correct |
24 |
Correct |
8 ms |
8192 KB |
Output is correct |
25 |
Correct |
8 ms |
8192 KB |
Output is correct |
26 |
Correct |
8 ms |
8192 KB |
Output is correct |
27 |
Correct |
8 ms |
8192 KB |
Output is correct |
28 |
Correct |
8 ms |
8192 KB |
Output is correct |
29 |
Correct |
9 ms |
8240 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
8192 KB |
Output is correct |
2 |
Correct |
8 ms |
8192 KB |
Output is correct |
3 |
Correct |
10 ms |
8192 KB |
Output is correct |
4 |
Correct |
8 ms |
8192 KB |
Output is correct |
5 |
Correct |
8 ms |
8116 KB |
Output is correct |
6 |
Correct |
8 ms |
8192 KB |
Output is correct |
7 |
Correct |
8 ms |
8192 KB |
Output is correct |
8 |
Correct |
8 ms |
8192 KB |
Output is correct |
9 |
Correct |
9 ms |
8192 KB |
Output is correct |
10 |
Correct |
10 ms |
8192 KB |
Output is correct |
11 |
Correct |
8 ms |
8192 KB |
Output is correct |
12 |
Correct |
9 ms |
8096 KB |
Output is correct |
13 |
Correct |
9 ms |
8136 KB |
Output is correct |
14 |
Correct |
9 ms |
8192 KB |
Output is correct |
15 |
Correct |
8 ms |
8192 KB |
Output is correct |
16 |
Correct |
8 ms |
8192 KB |
Output is correct |
17 |
Correct |
9 ms |
8192 KB |
Output is correct |
18 |
Correct |
8 ms |
8192 KB |
Output is correct |
19 |
Correct |
8 ms |
8192 KB |
Output is correct |
20 |
Correct |
8 ms |
8192 KB |
Output is correct |
21 |
Correct |
8 ms |
8192 KB |
Output is correct |
22 |
Correct |
8 ms |
8192 KB |
Output is correct |
23 |
Correct |
9 ms |
8192 KB |
Output is correct |
24 |
Correct |
8 ms |
8192 KB |
Output is correct |
25 |
Correct |
8 ms |
8192 KB |
Output is correct |
26 |
Correct |
8 ms |
8192 KB |
Output is correct |
27 |
Correct |
8 ms |
8192 KB |
Output is correct |
28 |
Correct |
8 ms |
8192 KB |
Output is correct |
29 |
Correct |
9 ms |
8240 KB |
Output is correct |
30 |
Correct |
207 ms |
15992 KB |
Output is correct |
31 |
Correct |
225 ms |
16120 KB |
Output is correct |
32 |
Correct |
151 ms |
15992 KB |
Output is correct |
33 |
Correct |
174 ms |
15996 KB |
Output is correct |
34 |
Correct |
172 ms |
15992 KB |
Output is correct |
35 |
Correct |
169 ms |
15992 KB |
Output is correct |
36 |
Correct |
169 ms |
15992 KB |
Output is correct |
37 |
Correct |
177 ms |
15996 KB |
Output is correct |
38 |
Correct |
179 ms |
15992 KB |
Output is correct |
39 |
Correct |
178 ms |
15956 KB |
Output is correct |
40 |
Correct |
181 ms |
15992 KB |
Output is correct |
41 |
Correct |
194 ms |
15992 KB |
Output is correct |
42 |
Correct |
185 ms |
15992 KB |
Output is correct |
43 |
Correct |
180 ms |
15944 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
10 ms |
8192 KB |
3rd lines differ - on the 1st token, expected: '3304', found: '3324' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
8192 KB |
Output is correct |
2 |
Correct |
8 ms |
8192 KB |
Output is correct |
3 |
Correct |
10 ms |
8192 KB |
Output is correct |
4 |
Correct |
8 ms |
8192 KB |
Output is correct |
5 |
Correct |
8 ms |
8116 KB |
Output is correct |
6 |
Correct |
8 ms |
8192 KB |
Output is correct |
7 |
Correct |
8 ms |
8192 KB |
Output is correct |
8 |
Correct |
8 ms |
8192 KB |
Output is correct |
9 |
Correct |
9 ms |
8192 KB |
Output is correct |
10 |
Correct |
10 ms |
8192 KB |
Output is correct |
11 |
Correct |
8 ms |
8192 KB |
Output is correct |
12 |
Correct |
9 ms |
8096 KB |
Output is correct |
13 |
Correct |
9 ms |
8136 KB |
Output is correct |
14 |
Correct |
9 ms |
8192 KB |
Output is correct |
15 |
Correct |
8 ms |
8192 KB |
Output is correct |
16 |
Correct |
8 ms |
8192 KB |
Output is correct |
17 |
Correct |
9 ms |
8192 KB |
Output is correct |
18 |
Correct |
8 ms |
8192 KB |
Output is correct |
19 |
Correct |
8 ms |
8192 KB |
Output is correct |
20 |
Correct |
8 ms |
8192 KB |
Output is correct |
21 |
Correct |
8 ms |
8192 KB |
Output is correct |
22 |
Correct |
8 ms |
8192 KB |
Output is correct |
23 |
Correct |
9 ms |
8192 KB |
Output is correct |
24 |
Correct |
8 ms |
8192 KB |
Output is correct |
25 |
Correct |
8 ms |
8192 KB |
Output is correct |
26 |
Correct |
8 ms |
8192 KB |
Output is correct |
27 |
Correct |
8 ms |
8192 KB |
Output is correct |
28 |
Correct |
8 ms |
8192 KB |
Output is correct |
29 |
Correct |
9 ms |
8240 KB |
Output is correct |
30 |
Correct |
207 ms |
15992 KB |
Output is correct |
31 |
Correct |
225 ms |
16120 KB |
Output is correct |
32 |
Correct |
151 ms |
15992 KB |
Output is correct |
33 |
Correct |
174 ms |
15996 KB |
Output is correct |
34 |
Correct |
172 ms |
15992 KB |
Output is correct |
35 |
Correct |
169 ms |
15992 KB |
Output is correct |
36 |
Correct |
169 ms |
15992 KB |
Output is correct |
37 |
Correct |
177 ms |
15996 KB |
Output is correct |
38 |
Correct |
179 ms |
15992 KB |
Output is correct |
39 |
Correct |
178 ms |
15956 KB |
Output is correct |
40 |
Correct |
181 ms |
15992 KB |
Output is correct |
41 |
Correct |
194 ms |
15992 KB |
Output is correct |
42 |
Correct |
185 ms |
15992 KB |
Output is correct |
43 |
Correct |
180 ms |
15944 KB |
Output is correct |
44 |
Incorrect |
10 ms |
8192 KB |
3rd lines differ - on the 1st token, expected: '3304', found: '3324' |
45 |
Halted |
0 ms |
0 KB |
- |