Submission #453071

# Submission time Handle Problem Language Result Execution time Memory
453071 2021-08-04T07:50:46 Z ComPhyPark Dungeons Game (IOI21_dungeons) C++17
89 / 100
7000 ms 1432264 KB
#include"dungeons.h"
#include<set>
#include<vector>
using namespace std;
typedef long long ll;
typedef struct st {
	int x, z, t;
	st() { x = 0; z = t = 0; }
	st(int X, int Z, int T) { x = X; z = Z; t = T; }
}st;
int n;
st l[400001][300];
int sv[400001], pv[400001], wv[400001], lv[400001];
ll w[400001];
int p2[26] = { 1 };
const int BIG = 33554432;
int min(int a, int b) {
	return a < b ? a : b;
}
int max(int a, int b) {
	return a > b ? a : b;
}
int f(int a, int b, int c) {
	if (b < c)return 0;
	return a < (b - c) ? a : (b - c);
}
void init(int N, vector<int>S, vector<int>P, vector<int>W, vector<int>L) {
	int i, j, k = 0, k2;
	n = N;
	w[n] = 0;
	L.push_back(n);
	W.push_back(n);
	P.push_back(0);
	S.push_back(0);
	for (i = 0; i <= n; i++) {
		lv[i] = L[i];
		wv[i] = W[i];
		pv[i] = P[i];
		sv[i] = S[i];
	}
	st p, q;
	for (i = n - 1; i >= 0; i--) {
		w[i] = w[W[i]] + S[i];
	}
	for (k = 0; k < 24; k++) {
		p2[k + 1] = p2[k] << 1;
		k2 = k * (k + 1) / 2;
		for (i = 0; i <= n; i++) {
			if (sv[i] <= p2[k]) {
				l[i][k2] = st(wv[i], sv[i], BIG);
			}
			else {
				l[i][k2] = st(lv[i], pv[i], sv[i]);
			}
		}
		for (j = 0; j < k; j++) {
			for (i = 0; i <= n; i++) {
				p = l[i][j + k2];
				q = l[p.x][j + k2];
				l[i][j + 1 + k2] = st(q.x, min(BIG, p.z + q.z), max(0, min(p.t, q.t - p.z)));
			}
		}
	}
}
ll simulate(int x, int z) {
	int i, j, k;
	ll r = z;
	st p;
	for (i = 0; i < 24; i++) {
		if (x == n)break;
		if (r >= p2[i + 1])continue;
		k = i * (i + 1) / 2;
		for (j = i; j >= 0; j--) {
			if (x == n)break;
			p = l[x][k + j];
			if (r < p.t && r + p.z < p2[i + 1]) {
				r += p.z;
				x = p.x;
			}
		}
		if (x == n)break;
		if (r < sv[x]) {
			r += pv[x];
			x = lv[x];
		}
		else {
			r += sv[x];
			x = wv[x];
		}
	}
	return r + w[x];
}
# Verdict Execution time Memory Grader output
1 Correct 880 ms 1409208 KB Output is correct
2 Correct 909 ms 1409204 KB Output is correct
3 Correct 859 ms 1409332 KB Output is correct
4 Correct 1275 ms 1412040 KB Output is correct
5 Correct 861 ms 1409412 KB Output is correct
6 Correct 1323 ms 1412044 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 857 ms 1409268 KB Output is correct
2 Correct 5366 ms 1432004 KB Output is correct
3 Correct 4841 ms 1432160 KB Output is correct
4 Correct 5061 ms 1432164 KB Output is correct
5 Correct 4827 ms 1432164 KB Output is correct
6 Correct 6019 ms 1432260 KB Output is correct
7 Correct 5555 ms 1432164 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 844 ms 1409320 KB Output is correct
2 Correct 1268 ms 1412768 KB Output is correct
3 Correct 1234 ms 1412896 KB Output is correct
4 Correct 1222 ms 1413132 KB Output is correct
5 Correct 1222 ms 1413120 KB Output is correct
6 Correct 1328 ms 1412876 KB Output is correct
7 Correct 1419 ms 1412996 KB Output is correct
8 Correct 1614 ms 1412784 KB Output is correct
9 Correct 1239 ms 1412788 KB Output is correct
10 Correct 1569 ms 1412852 KB Output is correct
11 Correct 1953 ms 1413024 KB Output is correct
12 Correct 3046 ms 1412996 KB Output is correct
13 Correct 2924 ms 1413104 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 844 ms 1409320 KB Output is correct
2 Correct 1268 ms 1412768 KB Output is correct
3 Correct 1234 ms 1412896 KB Output is correct
4 Correct 1222 ms 1413132 KB Output is correct
5 Correct 1222 ms 1413120 KB Output is correct
6 Correct 1328 ms 1412876 KB Output is correct
7 Correct 1419 ms 1412996 KB Output is correct
8 Correct 1614 ms 1412784 KB Output is correct
9 Correct 1239 ms 1412788 KB Output is correct
10 Correct 1569 ms 1412852 KB Output is correct
11 Correct 1953 ms 1413024 KB Output is correct
12 Correct 3046 ms 1412996 KB Output is correct
13 Correct 2924 ms 1413104 KB Output is correct
14 Correct 862 ms 1409392 KB Output is correct
15 Correct 1172 ms 1412956 KB Output is correct
16 Correct 1289 ms 1413008 KB Output is correct
17 Correct 1341 ms 1412868 KB Output is correct
18 Correct 1291 ms 1412768 KB Output is correct
19 Correct 1354 ms 1413072 KB Output is correct
20 Correct 1407 ms 1412872 KB Output is correct
21 Correct 1599 ms 1412840 KB Output is correct
22 Correct 1523 ms 1412976 KB Output is correct
23 Correct 2013 ms 1412996 KB Output is correct
24 Correct 2160 ms 1413072 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 844 ms 1409320 KB Output is correct
2 Correct 1268 ms 1412768 KB Output is correct
3 Correct 1234 ms 1412896 KB Output is correct
4 Correct 1222 ms 1413132 KB Output is correct
5 Correct 1222 ms 1413120 KB Output is correct
6 Correct 1328 ms 1412876 KB Output is correct
7 Correct 1419 ms 1412996 KB Output is correct
8 Correct 1614 ms 1412784 KB Output is correct
9 Correct 1239 ms 1412788 KB Output is correct
10 Correct 1569 ms 1412852 KB Output is correct
11 Correct 1953 ms 1413024 KB Output is correct
12 Correct 3046 ms 1412996 KB Output is correct
13 Correct 2924 ms 1413104 KB Output is correct
14 Correct 862 ms 1409392 KB Output is correct
15 Correct 1172 ms 1412956 KB Output is correct
16 Correct 1289 ms 1413008 KB Output is correct
17 Correct 1341 ms 1412868 KB Output is correct
18 Correct 1291 ms 1412768 KB Output is correct
19 Correct 1354 ms 1413072 KB Output is correct
20 Correct 1407 ms 1412872 KB Output is correct
21 Correct 1599 ms 1412840 KB Output is correct
22 Correct 1523 ms 1412976 KB Output is correct
23 Correct 2013 ms 1412996 KB Output is correct
24 Correct 2160 ms 1413072 KB Output is correct
25 Correct 1286 ms 1412132 KB Output is correct
26 Correct 1320 ms 1413176 KB Output is correct
27 Correct 1380 ms 1413096 KB Output is correct
28 Correct 1420 ms 1412984 KB Output is correct
29 Correct 1391 ms 1413180 KB Output is correct
30 Correct 1491 ms 1413172 KB Output is correct
31 Correct 1514 ms 1413128 KB Output is correct
32 Correct 1641 ms 1413092 KB Output is correct
33 Correct 1515 ms 1413116 KB Output is correct
34 Correct 1958 ms 1413036 KB Output is correct
35 Correct 1517 ms 1413072 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 857 ms 1409268 KB Output is correct
2 Correct 5366 ms 1432004 KB Output is correct
3 Correct 4841 ms 1432160 KB Output is correct
4 Correct 5061 ms 1432164 KB Output is correct
5 Correct 4827 ms 1432164 KB Output is correct
6 Correct 6019 ms 1432260 KB Output is correct
7 Correct 5555 ms 1432164 KB Output is correct
8 Correct 844 ms 1409320 KB Output is correct
9 Correct 1268 ms 1412768 KB Output is correct
10 Correct 1234 ms 1412896 KB Output is correct
11 Correct 1222 ms 1413132 KB Output is correct
12 Correct 1222 ms 1413120 KB Output is correct
13 Correct 1328 ms 1412876 KB Output is correct
14 Correct 1419 ms 1412996 KB Output is correct
15 Correct 1614 ms 1412784 KB Output is correct
16 Correct 1239 ms 1412788 KB Output is correct
17 Correct 1569 ms 1412852 KB Output is correct
18 Correct 1953 ms 1413024 KB Output is correct
19 Correct 3046 ms 1412996 KB Output is correct
20 Correct 2924 ms 1413104 KB Output is correct
21 Correct 862 ms 1409392 KB Output is correct
22 Correct 1172 ms 1412956 KB Output is correct
23 Correct 1289 ms 1413008 KB Output is correct
24 Correct 1341 ms 1412868 KB Output is correct
25 Correct 1291 ms 1412768 KB Output is correct
26 Correct 1354 ms 1413072 KB Output is correct
27 Correct 1407 ms 1412872 KB Output is correct
28 Correct 1599 ms 1412840 KB Output is correct
29 Correct 1523 ms 1412976 KB Output is correct
30 Correct 2013 ms 1412996 KB Output is correct
31 Correct 2160 ms 1413072 KB Output is correct
32 Correct 1286 ms 1412132 KB Output is correct
33 Correct 1320 ms 1413176 KB Output is correct
34 Correct 1380 ms 1413096 KB Output is correct
35 Correct 1420 ms 1412984 KB Output is correct
36 Correct 1391 ms 1413180 KB Output is correct
37 Correct 1491 ms 1413172 KB Output is correct
38 Correct 1514 ms 1413128 KB Output is correct
39 Correct 1641 ms 1413092 KB Output is correct
40 Correct 1515 ms 1413116 KB Output is correct
41 Correct 1958 ms 1413036 KB Output is correct
42 Correct 1517 ms 1413072 KB Output is correct
43 Correct 841 ms 1409192 KB Output is correct
44 Correct 836 ms 1409412 KB Output is correct
45 Correct 5739 ms 1432264 KB Output is correct
46 Correct 4656 ms 1432228 KB Output is correct
47 Correct 4699 ms 1432144 KB Output is correct
48 Correct 4892 ms 1432148 KB Output is correct
49 Correct 6260 ms 1432164 KB Output is correct
50 Correct 5956 ms 1432144 KB Output is correct
51 Correct 5001 ms 1432152 KB Output is correct
52 Correct 5566 ms 1432164 KB Output is correct
53 Execution timed out 7204 ms 1432068 KB Time limit exceeded
54 Halted 0 ms 0 KB -