Submission #765763

# Submission time Handle Problem Language Result Execution time Memory
765763 2023-06-25T04:50:34 Z SanguineChameleon Shortcut (IOI16_shortcut) C++17
0 / 100
434 ms 340 KB
#include "shortcut.h"
#include <bits/stdc++.h>
using namespace std;

const int maxn = 3e3 + 20;
const long long inf = 1e18L;
long long len[maxn];
int depth[maxn];
int n, c;

long long calc(long long lim) {
	long long res = inf;
	for (int x = 1; x <= n; x++) {
		for (int y = x + 1; y <= n; y++) {
			long long mx = 0;
			for (int i = 1; i <= n; i++) {
				for (int j = i + 1; j <= x; j++) {
					if (len[j] - len[i] + depth[i] + depth[j] > lim) {
						mx = max(mx, inf);
					}
				}
			}
			for (int i = y; i <= n; i++) {
				for (int j = i + 1; j <= n; j++) {
					if (len[j] - len[i] + depth[i] + depth[j] > lim) {
						mx = max(mx, inf);
					}
				}
			}
			for (int i = 1; i <= x; i++) {
				for (int j = x + 1; j <= y; j++) {
					long long d1 = len[y] - len[x] + c - (len[j] - len[x]) + len[x] - len[i] + depth[i] + depth[j];
					long long d2 = len[j] - len[i] + depth[i] + depth[j];
					if (d2 > lim) {
						mx = max(mx, d1);
					}
				}
			}
			for (int i = x; i <= y - 1; i++) {
				for (int j = y; j <= n; j++) {
					long long d1 = len[y] - len[x] + c - (len[y] - len[i]) + len[j] - len[y] + depth[i] + depth[j];
					long long d2 = len[j] - len[i] + depth[i] + depth[j];
					if (d1 > lim && d2 > lim) {
						mx = max(mx, d1);
					}
				}
			}
			for (int i = x; i <= y; i++) {
				for (int j = i + 1; j <= y; j++) {
					long long d1 = len[y] - len[x] + c - (len[j] - len[i]) + depth[i] + depth[j];
					long long d2 = len[j] - len[i] + depth[i] + depth[j];
					if (d1 > lim && d2 > lim) {
						mx = max(mx, d1);
					}
				}
			}
			for (int i = 1; i <= x; i++) {
				for (int j = y; j <= n; j++) {
					long long d1 = len[j] - len[i] - (len[y] - len[x]) + c + depth[i] + depth[j];
					long long d2 = len[j] - len[i] + depth[i] + depth[j];
					if (d1 > lim && d2 > lim) {
						mx = max(mx, d1);
					}
				}
			}
			res = min(res, mx);
		}
	}
	return res;
}

long long dist[maxn * maxn];

long long find_shortcut(int _n, vector<int> _len, vector<int> _depth, int _c) {
	n = _n;
	c = _c;
	len[1] = 0;
	for (int i = 2; i <= n; i++) {
		len[i] = len[i - 1] + _len[i - 2];
	}
	for (int i = 1; i <= n; i++) {
		depth[i] = _depth[i - 1];
	}
	int cnt = 0;
	for (int i = 1; i <= n; i++) {
		for (int j = i + 1; j <= n; j++) {
			dist[cnt++] = len[j] - len[i] + depth[i] + depth[j];
		}
	}
	sort(dist, dist + cnt, greater<>());
	long long res = dist[0];
	int lt = 0;
	int rt = cnt - 1;
	while (lt <= rt) {
		int mt = (lt + rt) / 2;
		long long mx = calc(dist[mt] - 1);
		if (mx < dist[mt]) {
			res = max(mx, dist[mt + 1]);
			lt = mt + 1;
		}
		else {
			rt = mt - 1;
		}
	}
	return res;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 1 ms 212 KB n = 4, 21 is a correct answer
4 Correct 1 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 212 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 0 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 0 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 0 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 1 ms 212 KB n = 5, 25 is a correct answer
22 Correct 1 ms 212 KB n = 2, 122 is a correct answer
23 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 434 ms 340 KB n = 100, 51000000001 is a correct answer
32 Incorrect 26 ms 212 KB n = 50, incorrect answer: jury 197881272 vs contestant 197249268
33 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 1 ms 212 KB n = 4, 21 is a correct answer
4 Correct 1 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 212 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 0 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 0 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 0 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 1 ms 212 KB n = 5, 25 is a correct answer
22 Correct 1 ms 212 KB n = 2, 122 is a correct answer
23 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 434 ms 340 KB n = 100, 51000000001 is a correct answer
32 Incorrect 26 ms 212 KB n = 50, incorrect answer: jury 197881272 vs contestant 197249268
33 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 1 ms 212 KB n = 4, 21 is a correct answer
4 Correct 1 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 212 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 0 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 0 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 0 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 1 ms 212 KB n = 5, 25 is a correct answer
22 Correct 1 ms 212 KB n = 2, 122 is a correct answer
23 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 434 ms 340 KB n = 100, 51000000001 is a correct answer
32 Incorrect 26 ms 212 KB n = 50, incorrect answer: jury 197881272 vs contestant 197249268
33 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 1 ms 212 KB n = 4, 21 is a correct answer
4 Correct 1 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 212 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 0 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 0 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 0 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 1 ms 212 KB n = 5, 25 is a correct answer
22 Correct 1 ms 212 KB n = 2, 122 is a correct answer
23 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 434 ms 340 KB n = 100, 51000000001 is a correct answer
32 Incorrect 26 ms 212 KB n = 50, incorrect answer: jury 197881272 vs contestant 197249268
33 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 1 ms 212 KB n = 4, 21 is a correct answer
4 Correct 1 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 212 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 0 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 0 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 0 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 1 ms 212 KB n = 5, 25 is a correct answer
22 Correct 1 ms 212 KB n = 2, 122 is a correct answer
23 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 434 ms 340 KB n = 100, 51000000001 is a correct answer
32 Incorrect 26 ms 212 KB n = 50, incorrect answer: jury 197881272 vs contestant 197249268
33 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 1 ms 212 KB n = 4, 21 is a correct answer
4 Correct 1 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 212 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 0 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 0 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 0 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 1 ms 212 KB n = 5, 25 is a correct answer
22 Correct 1 ms 212 KB n = 2, 122 is a correct answer
23 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 434 ms 340 KB n = 100, 51000000001 is a correct answer
32 Incorrect 26 ms 212 KB n = 50, incorrect answer: jury 197881272 vs contestant 197249268
33 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 1 ms 212 KB n = 4, 21 is a correct answer
4 Correct 1 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 212 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 0 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 0 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 0 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 1 ms 212 KB n = 5, 25 is a correct answer
22 Correct 1 ms 212 KB n = 2, 122 is a correct answer
23 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 434 ms 340 KB n = 100, 51000000001 is a correct answer
32 Incorrect 26 ms 212 KB n = 50, incorrect answer: jury 197881272 vs contestant 197249268
33 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 1 ms 212 KB n = 4, 21 is a correct answer
4 Correct 1 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 212 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 0 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 0 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 0 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 1 ms 212 KB n = 5, 25 is a correct answer
22 Correct 1 ms 212 KB n = 2, 122 is a correct answer
23 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 434 ms 340 KB n = 100, 51000000001 is a correct answer
32 Incorrect 26 ms 212 KB n = 50, incorrect answer: jury 197881272 vs contestant 197249268
33 Halted 0 ms 0 KB -