Submission #67997

# Submission time Handle Problem Language Result Execution time Memory
67997 2018-08-15T17:40:11 Z KieranHorgan Race (IOI11_race) C++17
21 / 100
3000 ms 110620 KB
#include "race.h"
#include <bits/stdc++.h>
using namespace std;

vector<pair<int, int>> AdjList[200000];
bitset<200000> visited1[100];
bitset<200000> visited2[100];
int prv[100][200000];

int best_path(int N, int K, int H[][2], int L[]) {
	for(int i = 0; i+1 < N; i++) {
		AdjList[H[i][0]].push_back({L[i], H[i][1]});
		AdjList[H[i][1]].push_back({L[i], H[i][0]});
	}

	queue<pair<pair<int, int>, pair<pair<int, int>, int>>> q;
	for(int i = 0; i < N; i++)
		q.push({{i, -1}, {{0, 0}, -1}});
	int u, p, d, s, to;
	while(!q.empty()) {
		u = q.front().first.first;
		p = q.front().first.second;
		d = q.front().second.first.first;
		s = q.front().second.first.second;
		to = q.front().second.second;
		q.pop();
		for(auto v: AdjList[u]) {
			if(v.second != p && (to == -1 || to == v.second)) {
				if(d+v.first == K)
					return s+1;
				if(d+v.first > K) continue;
				if(K <= 100) {
					if(!visited1[d+v.first][v.second]) {
						visited1[d+v.first][v.second]=1;
						q.push({{v.second, u}, {{d+v.first, s+1}, -1}});
						prv[d+v.first][v.second] = u;
					} else if(!visited2[d+v.first][v.second] && prv[d+v.first][v.second] != u) {
						visited2[d+v.first][v.second]=1;
						q.push({{v.second, u}, {{d+v.first, s+1}, prv[d+v.first][v.second]}});
					}
				} else {
					q.push({{v.second, u}, {{d+v.first, s+1}, -1}});
				}
			}
		}
	}

	return -1;
}

# Verdict Execution time Memory Grader output
1 Correct 8 ms 5752 KB Output is correct
2 Correct 8 ms 5872 KB Output is correct
3 Correct 7 ms 5872 KB Output is correct
4 Correct 8 ms 5872 KB Output is correct
5 Correct 7 ms 5872 KB Output is correct
6 Correct 9 ms 6064 KB Output is correct
7 Correct 9 ms 6156 KB Output is correct
8 Correct 9 ms 6216 KB Output is correct
9 Correct 9 ms 6656 KB Output is correct
10 Correct 9 ms 6656 KB Output is correct
11 Correct 8 ms 6656 KB Output is correct
12 Correct 8 ms 6656 KB Output is correct
13 Correct 8 ms 6764 KB Output is correct
14 Correct 11 ms 6772 KB Output is correct
15 Correct 10 ms 6772 KB Output is correct
16 Correct 10 ms 6776 KB Output is correct
17 Correct 9 ms 6776 KB Output is correct
18 Correct 9 ms 6776 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 5752 KB Output is correct
2 Correct 8 ms 5872 KB Output is correct
3 Correct 7 ms 5872 KB Output is correct
4 Correct 8 ms 5872 KB Output is correct
5 Correct 7 ms 5872 KB Output is correct
6 Correct 9 ms 6064 KB Output is correct
7 Correct 9 ms 6156 KB Output is correct
8 Correct 9 ms 6216 KB Output is correct
9 Correct 9 ms 6656 KB Output is correct
10 Correct 9 ms 6656 KB Output is correct
11 Correct 8 ms 6656 KB Output is correct
12 Correct 8 ms 6656 KB Output is correct
13 Correct 8 ms 6764 KB Output is correct
14 Correct 11 ms 6772 KB Output is correct
15 Correct 10 ms 6772 KB Output is correct
16 Correct 10 ms 6776 KB Output is correct
17 Correct 9 ms 6776 KB Output is correct
18 Correct 9 ms 6776 KB Output is correct
19 Correct 7 ms 6776 KB Output is correct
20 Correct 8 ms 6776 KB Output is correct
21 Correct 40 ms 8364 KB Output is correct
22 Correct 9 ms 8364 KB Output is correct
23 Correct 9 ms 8364 KB Output is correct
24 Correct 10 ms 8364 KB Output is correct
25 Correct 51 ms 8364 KB Output is correct
26 Correct 7 ms 8364 KB Output is correct
27 Correct 8 ms 8364 KB Output is correct
28 Correct 11 ms 8364 KB Output is correct
29 Correct 20 ms 8364 KB Output is correct
30 Correct 13 ms 8364 KB Output is correct
31 Correct 39 ms 8364 KB Output is correct
32 Correct 41 ms 8364 KB Output is correct
33 Correct 29 ms 8364 KB Output is correct
34 Correct 10 ms 8364 KB Output is correct
35 Correct 12 ms 8364 KB Output is correct
36 Correct 8 ms 8364 KB Output is correct
37 Correct 26 ms 8364 KB Output is correct
38 Correct 25 ms 8364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 5752 KB Output is correct
2 Correct 8 ms 5872 KB Output is correct
3 Correct 7 ms 5872 KB Output is correct
4 Correct 8 ms 5872 KB Output is correct
5 Correct 7 ms 5872 KB Output is correct
6 Correct 9 ms 6064 KB Output is correct
7 Correct 9 ms 6156 KB Output is correct
8 Correct 9 ms 6216 KB Output is correct
9 Correct 9 ms 6656 KB Output is correct
10 Correct 9 ms 6656 KB Output is correct
11 Correct 8 ms 6656 KB Output is correct
12 Correct 8 ms 6656 KB Output is correct
13 Correct 8 ms 6764 KB Output is correct
14 Correct 11 ms 6772 KB Output is correct
15 Correct 10 ms 6772 KB Output is correct
16 Correct 10 ms 6776 KB Output is correct
17 Correct 9 ms 6776 KB Output is correct
18 Correct 9 ms 6776 KB Output is correct
19 Correct 987 ms 61800 KB Output is correct
20 Correct 1140 ms 64712 KB Output is correct
21 Correct 1118 ms 66112 KB Output is correct
22 Correct 1087 ms 74536 KB Output is correct
23 Correct 76 ms 74536 KB Output is correct
24 Correct 149 ms 74536 KB Output is correct
25 Correct 2528 ms 74536 KB Output is correct
26 Correct 1170 ms 74536 KB Output is correct
27 Correct 647 ms 98336 KB Output is correct
28 Correct 362 ms 98336 KB Output is correct
29 Correct 340 ms 98336 KB Output is correct
30 Correct 645 ms 109372 KB Output is correct
31 Correct 674 ms 110620 KB Output is correct
32 Correct 417 ms 110620 KB Output is correct
33 Execution timed out 3060 ms 110620 KB Time limit exceeded
34 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 5752 KB Output is correct
2 Correct 8 ms 5872 KB Output is correct
3 Correct 7 ms 5872 KB Output is correct
4 Correct 8 ms 5872 KB Output is correct
5 Correct 7 ms 5872 KB Output is correct
6 Correct 9 ms 6064 KB Output is correct
7 Correct 9 ms 6156 KB Output is correct
8 Correct 9 ms 6216 KB Output is correct
9 Correct 9 ms 6656 KB Output is correct
10 Correct 9 ms 6656 KB Output is correct
11 Correct 8 ms 6656 KB Output is correct
12 Correct 8 ms 6656 KB Output is correct
13 Correct 8 ms 6764 KB Output is correct
14 Correct 11 ms 6772 KB Output is correct
15 Correct 10 ms 6772 KB Output is correct
16 Correct 10 ms 6776 KB Output is correct
17 Correct 9 ms 6776 KB Output is correct
18 Correct 9 ms 6776 KB Output is correct
19 Correct 7 ms 6776 KB Output is correct
20 Correct 8 ms 6776 KB Output is correct
21 Correct 40 ms 8364 KB Output is correct
22 Correct 9 ms 8364 KB Output is correct
23 Correct 9 ms 8364 KB Output is correct
24 Correct 10 ms 8364 KB Output is correct
25 Correct 51 ms 8364 KB Output is correct
26 Correct 7 ms 8364 KB Output is correct
27 Correct 8 ms 8364 KB Output is correct
28 Correct 11 ms 8364 KB Output is correct
29 Correct 20 ms 8364 KB Output is correct
30 Correct 13 ms 8364 KB Output is correct
31 Correct 39 ms 8364 KB Output is correct
32 Correct 41 ms 8364 KB Output is correct
33 Correct 29 ms 8364 KB Output is correct
34 Correct 10 ms 8364 KB Output is correct
35 Correct 12 ms 8364 KB Output is correct
36 Correct 8 ms 8364 KB Output is correct
37 Correct 26 ms 8364 KB Output is correct
38 Correct 25 ms 8364 KB Output is correct
39 Correct 987 ms 61800 KB Output is correct
40 Correct 1140 ms 64712 KB Output is correct
41 Correct 1118 ms 66112 KB Output is correct
42 Correct 1087 ms 74536 KB Output is correct
43 Correct 76 ms 74536 KB Output is correct
44 Correct 149 ms 74536 KB Output is correct
45 Correct 2528 ms 74536 KB Output is correct
46 Correct 1170 ms 74536 KB Output is correct
47 Correct 647 ms 98336 KB Output is correct
48 Correct 362 ms 98336 KB Output is correct
49 Correct 340 ms 98336 KB Output is correct
50 Correct 645 ms 109372 KB Output is correct
51 Correct 674 ms 110620 KB Output is correct
52 Correct 417 ms 110620 KB Output is correct
53 Execution timed out 3060 ms 110620 KB Time limit exceeded
54 Halted 0 ms 0 KB -