Submission #843733

# Submission time Handle Problem Language Result Execution time Memory
843733 2023-09-04T13:34:15 Z Tob Jakarta Skyscrapers (APIO15_skyscraper) C++14
57 / 100
172 ms 262144 KB
#include <bits/stdc++.h>

#define ll long long
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define pb push_back
#define FIO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)

using namespace std;

typedef pair <ll, ll> pii;

const int N = 30007, B = 200, inf = 1e9;

int n, m;
int b[N], p[N], dis[N*B+N];
vector <pii> adj[N*B+N];

int En(int x, int y = 0) {return y*N + x;}

int main () {
	FIO;
	cin >> n >> m;
	
	for (int i = 1; i < B; i++) {
		for (int j = 0; j < n; j++) {
			if (j-i >= 0) adj[En(j, i)].pb({En(j-i, i), 1});
			if (j+i < n) adj[En(j, i)].pb({En(j+i, i), 1});
			adj[En(j, i)].pb({j, 0});
		}
	}
	
	for (int i = 0; i < m; i++) {
		cin >> b[i] >> p[i];
		if (p[i] < B) adj[b[i]].pb({En(b[i], p[i]), 0});
		else {
			for (int j = b[i]-p[i], k = 1; j >= 0; j -= p[i], k++) adj[b[i]].pb({j, k});
			for (int j = b[i]+p[i], k = 1; j < n; j += p[i], k++) adj[b[i]].pb({j, k});
		}
	}
	
	for (int i = 0; i < N*B+N; i++) dis[i] = inf;
	set <pii> s; s.insert({0, b[0]});
	dis[b[0]] = 0;
	while (!s.empty()) {
		auto p = s.begin();
		int x = (*p).S;
		s.erase(p);
		for (auto it : adj[x]) {
			int y = it.F, w = it.S;
			if (dis[x] + w < dis[y]) {
				if (dis[y] != inf) s.erase({dis[y], y});
				dis[y] = dis[x] + w;
				s.insert({dis[y], y});
			}
		}
	}
	if (dis[b[1]] != inf) cout << dis[b[1]] << "\n";
	else cout << "-1\n";

	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 34 ms 165492 KB Output is correct
2 Correct 38 ms 165460 KB Output is correct
3 Correct 34 ms 165968 KB Output is correct
4 Correct 35 ms 165700 KB Output is correct
5 Correct 35 ms 165752 KB Output is correct
6 Correct 34 ms 165724 KB Output is correct
7 Correct 35 ms 165548 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 35 ms 165460 KB Output is correct
2 Correct 36 ms 165556 KB Output is correct
3 Correct 36 ms 165720 KB Output is correct
4 Correct 35 ms 165644 KB Output is correct
5 Correct 35 ms 165716 KB Output is correct
6 Correct 34 ms 165724 KB Output is correct
7 Correct 35 ms 165608 KB Output is correct
8 Correct 35 ms 165724 KB Output is correct
9 Correct 35 ms 165972 KB Output is correct
10 Correct 37 ms 166484 KB Output is correct
11 Correct 39 ms 166484 KB Output is correct
12 Correct 36 ms 166580 KB Output is correct
13 Correct 36 ms 166492 KB Output is correct
14 Correct 37 ms 166492 KB Output is correct
15 Correct 39 ms 166492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 39 ms 165584 KB Output is correct
2 Correct 35 ms 165460 KB Output is correct
3 Correct 36 ms 165968 KB Output is correct
4 Correct 35 ms 165724 KB Output is correct
5 Correct 38 ms 165712 KB Output is correct
6 Correct 34 ms 165712 KB Output is correct
7 Correct 35 ms 165716 KB Output is correct
8 Correct 35 ms 165832 KB Output is correct
9 Correct 35 ms 165972 KB Output is correct
10 Correct 36 ms 166344 KB Output is correct
11 Correct 37 ms 166492 KB Output is correct
12 Correct 40 ms 166480 KB Output is correct
13 Correct 36 ms 166492 KB Output is correct
14 Correct 37 ms 166712 KB Output is correct
15 Correct 37 ms 166616 KB Output is correct
16 Correct 37 ms 167516 KB Output is correct
17 Correct 53 ms 175952 KB Output is correct
18 Correct 75 ms 191568 KB Output is correct
19 Correct 74 ms 195528 KB Output is correct
20 Correct 80 ms 195668 KB Output is correct
21 Correct 41 ms 170576 KB Output is correct
22 Correct 74 ms 192208 KB Output is correct
23 Correct 69 ms 189360 KB Output is correct
24 Correct 75 ms 194144 KB Output is correct
25 Correct 78 ms 195428 KB Output is correct
26 Correct 81 ms 195668 KB Output is correct
27 Correct 87 ms 195436 KB Output is correct
28 Correct 83 ms 195752 KB Output is correct
29 Correct 81 ms 195544 KB Output is correct
30 Correct 79 ms 195616 KB Output is correct
31 Correct 78 ms 195656 KB Output is correct
32 Correct 77 ms 195592 KB Output is correct
33 Correct 88 ms 195788 KB Output is correct
34 Correct 85 ms 195572 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 34 ms 165712 KB Output is correct
2 Correct 35 ms 165464 KB Output is correct
3 Correct 39 ms 165724 KB Output is correct
4 Correct 35 ms 165656 KB Output is correct
5 Correct 34 ms 165720 KB Output is correct
6 Correct 34 ms 165716 KB Output is correct
7 Correct 37 ms 165724 KB Output is correct
8 Correct 35 ms 165940 KB Output is correct
9 Correct 36 ms 165976 KB Output is correct
10 Correct 36 ms 166492 KB Output is correct
11 Correct 38 ms 166660 KB Output is correct
12 Correct 36 ms 166492 KB Output is correct
13 Correct 41 ms 166740 KB Output is correct
14 Correct 40 ms 166480 KB Output is correct
15 Correct 37 ms 166692 KB Output is correct
16 Correct 37 ms 167512 KB Output is correct
17 Correct 52 ms 175956 KB Output is correct
18 Correct 70 ms 191556 KB Output is correct
19 Correct 84 ms 195620 KB Output is correct
20 Correct 75 ms 195668 KB Output is correct
21 Correct 46 ms 170576 KB Output is correct
22 Correct 70 ms 192084 KB Output is correct
23 Correct 71 ms 189148 KB Output is correct
24 Correct 80 ms 193944 KB Output is correct
25 Correct 75 ms 195664 KB Output is correct
26 Correct 80 ms 195532 KB Output is correct
27 Correct 83 ms 195660 KB Output is correct
28 Correct 77 ms 195668 KB Output is correct
29 Correct 81 ms 195668 KB Output is correct
30 Correct 75 ms 195412 KB Output is correct
31 Correct 77 ms 195652 KB Output is correct
32 Correct 78 ms 195412 KB Output is correct
33 Correct 94 ms 195576 KB Output is correct
34 Correct 84 ms 195756 KB Output is correct
35 Correct 94 ms 187732 KB Output is correct
36 Correct 69 ms 181364 KB Output is correct
37 Correct 115 ms 196372 KB Output is correct
38 Correct 109 ms 197204 KB Output is correct
39 Correct 110 ms 197276 KB Output is correct
40 Correct 113 ms 197200 KB Output is correct
41 Correct 118 ms 197460 KB Output is correct
42 Correct 80 ms 196304 KB Output is correct
43 Correct 79 ms 196340 KB Output is correct
44 Correct 85 ms 196348 KB Output is correct
45 Correct 124 ms 199092 KB Output is correct
46 Correct 134 ms 199436 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 36 ms 165460 KB Output is correct
2 Correct 36 ms 165468 KB Output is correct
3 Correct 36 ms 165468 KB Output is correct
4 Correct 34 ms 165716 KB Output is correct
5 Correct 36 ms 165716 KB Output is correct
6 Correct 37 ms 165720 KB Output is correct
7 Correct 35 ms 165724 KB Output is correct
8 Correct 36 ms 165968 KB Output is correct
9 Correct 35 ms 165988 KB Output is correct
10 Correct 36 ms 166492 KB Output is correct
11 Correct 36 ms 166488 KB Output is correct
12 Correct 37 ms 166492 KB Output is correct
13 Correct 41 ms 166492 KB Output is correct
14 Correct 39 ms 166488 KB Output is correct
15 Correct 37 ms 166488 KB Output is correct
16 Correct 40 ms 167508 KB Output is correct
17 Correct 53 ms 175952 KB Output is correct
18 Correct 68 ms 191688 KB Output is correct
19 Correct 74 ms 195408 KB Output is correct
20 Correct 77 ms 195668 KB Output is correct
21 Correct 41 ms 170576 KB Output is correct
22 Correct 70 ms 192212 KB Output is correct
23 Correct 72 ms 189524 KB Output is correct
24 Correct 78 ms 194156 KB Output is correct
25 Correct 81 ms 195652 KB Output is correct
26 Correct 80 ms 195596 KB Output is correct
27 Correct 95 ms 195688 KB Output is correct
28 Correct 79 ms 195512 KB Output is correct
29 Correct 85 ms 195668 KB Output is correct
30 Correct 77 ms 195364 KB Output is correct
31 Correct 85 ms 195652 KB Output is correct
32 Correct 84 ms 195408 KB Output is correct
33 Correct 102 ms 195684 KB Output is correct
34 Correct 89 ms 195672 KB Output is correct
35 Correct 88 ms 187732 KB Output is correct
36 Correct 64 ms 181572 KB Output is correct
37 Correct 115 ms 196432 KB Output is correct
38 Correct 117 ms 197380 KB Output is correct
39 Correct 113 ms 197268 KB Output is correct
40 Correct 117 ms 197204 KB Output is correct
41 Correct 110 ms 197128 KB Output is correct
42 Correct 81 ms 196308 KB Output is correct
43 Correct 77 ms 196308 KB Output is correct
44 Correct 84 ms 196360 KB Output is correct
45 Correct 124 ms 199256 KB Output is correct
46 Correct 125 ms 199504 KB Output is correct
47 Runtime error 172 ms 262144 KB Execution killed with signal 9
48 Halted 0 ms 0 KB -