Submission #585353

# Submission time Handle Problem Language Result Execution time Memory
585353 2022-06-28T17:43:11 Z GusterGoose27 Jakarta Skyscrapers (APIO15_skyscraper) C++11
36 / 100
651 ms 262144 KB
#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> pii;

const int MAXN = 3e4;
const int inf = 1e9;
vector<pii> edges[MAXN];
unordered_set<int> at[MAXN];
int n, m;
int dist[MAXN];
vector<int> jump_occs[MAXN+1];
int occ_pos[MAXN+1];
vector<int> valsat[MAXN];

void dijkstra(int s) {
	fill(dist, dist+n, inf);
	dist[s] = 0;
	priority_queue<pii> pq;
	pq.push(pii(0, s));
	while (!pq.empty()) {
		pii p = pq.top();
		pq.pop();
		int cur = p.second;
		if (dist[cur] < p.first) continue;
		for (pii e: edges[cur]) {
			if (dist[cur]+e.second < dist[e.first]) {
				dist[e.first] = dist[cur]+e.second;
				pq.push(pii(dist[e.first], e.first));
			}
		}
	}
}

int main() {
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	cin >> n >> m;
	int posf;
	int poss;
	for (int i = 0; i < m; i++) {
		int x, y; cin >> x >> y;
		if (i == 1) posf = x;
		if (i == 0) poss = x;
		jump_occs[y].push_back(x);
		occ_pos[y]++;
		valsat[x].push_back(y);
		//at[x].insert(y);
	}
	for (int i = n-1; i >= 0; i--) {
		for (int p: valsat[i]) {
			occ_pos[p]--;
			int cur = occ_pos[p];
			int psize = jump_occs[p].size();
			for (int j = i+p; j < n; j += p) {
				edges[i].push_back(pii(j, (j-i)/p));
				while (cur < psize && jump_occs[p][cur] < j) cur++;
				if (cur < psize && jump_occs[p][cur] == j) break;
			}
		}
	}
	for (int i = 0; i < n; i++) {
		for (int p: valsat[i]) {
			int cur = occ_pos[p];
			for (int j = i-p; j >= 0; j -= p) {
				edges[i].push_back(pii(j, (i-j)/p));
				while (cur >= 0 && jump_occs[p][cur] > j) cur--;
				if (cur >= 0 && jump_occs[p][cur] == j) break;
			}
			occ_pos[p]++;
		}
	}
	dijkstra(poss);
	cout << ((dist[posf] == inf) ? (-1) : dist[posf]) << "\n";
	return 0;
}

Compilation message

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:73:10: warning: 'poss' may be used uninitialized in this function [-Wmaybe-uninitialized]
   73 |  dijkstra(poss);
      |  ~~~~~~~~^~~~~~
skyscraper.cpp:74:21: warning: 'posf' may be used uninitialized in this function [-Wmaybe-uninitialized]
   74 |  cout << ((dist[posf] == inf) ? (-1) : dist[posf]) << "\n";
      |            ~~~~~~~~~^
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4052 KB Output is correct
2 Correct 2 ms 4052 KB Output is correct
3 Correct 2 ms 4052 KB Output is correct
4 Correct 2 ms 4052 KB Output is correct
5 Correct 2 ms 4052 KB Output is correct
6 Correct 2 ms 4052 KB Output is correct
7 Correct 3 ms 4052 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4052 KB Output is correct
2 Correct 2 ms 4052 KB Output is correct
3 Correct 2 ms 4052 KB Output is correct
4 Correct 2 ms 4052 KB Output is correct
5 Correct 2 ms 4052 KB Output is correct
6 Correct 2 ms 4052 KB Output is correct
7 Correct 2 ms 4052 KB Output is correct
8 Correct 2 ms 4064 KB Output is correct
9 Correct 3 ms 4180 KB Output is correct
10 Correct 2 ms 4052 KB Output is correct
11 Correct 3 ms 4180 KB Output is correct
12 Correct 8 ms 6224 KB Output is correct
13 Correct 6 ms 5300 KB Output is correct
14 Correct 3 ms 4052 KB Output is correct
15 Correct 3 ms 4180 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4052 KB Output is correct
2 Correct 2 ms 4052 KB Output is correct
3 Correct 2 ms 4052 KB Output is correct
4 Correct 3 ms 4052 KB Output is correct
5 Correct 3 ms 4012 KB Output is correct
6 Correct 2 ms 4052 KB Output is correct
7 Correct 2 ms 4052 KB Output is correct
8 Correct 2 ms 4052 KB Output is correct
9 Correct 3 ms 4052 KB Output is correct
10 Correct 2 ms 4052 KB Output is correct
11 Correct 3 ms 4180 KB Output is correct
12 Correct 8 ms 6224 KB Output is correct
13 Correct 5 ms 5324 KB Output is correct
14 Correct 3 ms 4052 KB Output is correct
15 Correct 3 ms 4052 KB Output is correct
16 Correct 3 ms 4052 KB Output is correct
17 Correct 18 ms 4348 KB Output is correct
18 Correct 3 ms 4180 KB Output is correct
19 Correct 4 ms 4180 KB Output is correct
20 Correct 35 ms 25812 KB Output is correct
21 Correct 2 ms 4052 KB Output is correct
22 Correct 4 ms 4180 KB Output is correct
23 Correct 6 ms 4180 KB Output is correct
24 Correct 28 ms 4308 KB Output is correct
25 Correct 6 ms 4180 KB Output is correct
26 Correct 61 ms 37040 KB Output is correct
27 Correct 61 ms 37116 KB Output is correct
28 Correct 3 ms 4308 KB Output is correct
29 Correct 4 ms 4692 KB Output is correct
30 Correct 3 ms 4308 KB Output is correct
31 Correct 4 ms 4436 KB Output is correct
32 Correct 4 ms 4308 KB Output is correct
33 Correct 5 ms 5332 KB Output is correct
34 Correct 5 ms 5332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4052 KB Output is correct
2 Correct 2 ms 4052 KB Output is correct
3 Correct 2 ms 4052 KB Output is correct
4 Correct 2 ms 4052 KB Output is correct
5 Correct 3 ms 4052 KB Output is correct
6 Correct 2 ms 4052 KB Output is correct
7 Correct 2 ms 4052 KB Output is correct
8 Correct 2 ms 4052 KB Output is correct
9 Correct 2 ms 4052 KB Output is correct
10 Correct 4 ms 4052 KB Output is correct
11 Correct 3 ms 4180 KB Output is correct
12 Correct 8 ms 6224 KB Output is correct
13 Correct 6 ms 5324 KB Output is correct
14 Correct 3 ms 4052 KB Output is correct
15 Correct 3 ms 4052 KB Output is correct
16 Correct 3 ms 4052 KB Output is correct
17 Correct 16 ms 4308 KB Output is correct
18 Correct 2 ms 4180 KB Output is correct
19 Correct 3 ms 4180 KB Output is correct
20 Correct 34 ms 25756 KB Output is correct
21 Correct 3 ms 4052 KB Output is correct
22 Correct 3 ms 4140 KB Output is correct
23 Correct 7 ms 4180 KB Output is correct
24 Correct 26 ms 4308 KB Output is correct
25 Correct 6 ms 4180 KB Output is correct
26 Correct 65 ms 37124 KB Output is correct
27 Correct 63 ms 37108 KB Output is correct
28 Correct 4 ms 4308 KB Output is correct
29 Correct 4 ms 4692 KB Output is correct
30 Correct 4 ms 4272 KB Output is correct
31 Correct 4 ms 4436 KB Output is correct
32 Correct 4 ms 4308 KB Output is correct
33 Correct 5 ms 5332 KB Output is correct
34 Correct 5 ms 5332 KB Output is correct
35 Correct 118 ms 5788 KB Output is correct
36 Correct 29 ms 4308 KB Output is correct
37 Correct 296 ms 7124 KB Output is correct
38 Correct 275 ms 6756 KB Output is correct
39 Correct 303 ms 6764 KB Output is correct
40 Correct 330 ms 6740 KB Output is correct
41 Correct 293 ms 6704 KB Output is correct
42 Runtime error 644 ms 262144 KB Execution killed with signal 9
43 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4052 KB Output is correct
2 Correct 2 ms 4052 KB Output is correct
3 Correct 2 ms 4052 KB Output is correct
4 Correct 3 ms 4052 KB Output is correct
5 Correct 3 ms 4052 KB Output is correct
6 Correct 2 ms 4052 KB Output is correct
7 Correct 3 ms 4052 KB Output is correct
8 Correct 3 ms 4004 KB Output is correct
9 Correct 2 ms 4052 KB Output is correct
10 Correct 3 ms 4052 KB Output is correct
11 Correct 3 ms 4180 KB Output is correct
12 Correct 8 ms 6224 KB Output is correct
13 Correct 6 ms 5324 KB Output is correct
14 Correct 3 ms 4052 KB Output is correct
15 Correct 3 ms 4052 KB Output is correct
16 Correct 3 ms 4052 KB Output is correct
17 Correct 18 ms 4308 KB Output is correct
18 Correct 2 ms 4180 KB Output is correct
19 Correct 3 ms 4180 KB Output is correct
20 Correct 35 ms 25772 KB Output is correct
21 Correct 3 ms 4080 KB Output is correct
22 Correct 3 ms 4180 KB Output is correct
23 Correct 6 ms 4180 KB Output is correct
24 Correct 29 ms 4308 KB Output is correct
25 Correct 5 ms 4296 KB Output is correct
26 Correct 64 ms 37032 KB Output is correct
27 Correct 59 ms 37068 KB Output is correct
28 Correct 4 ms 4308 KB Output is correct
29 Correct 4 ms 4692 KB Output is correct
30 Correct 4 ms 4308 KB Output is correct
31 Correct 4 ms 4436 KB Output is correct
32 Correct 4 ms 4308 KB Output is correct
33 Correct 6 ms 5332 KB Output is correct
34 Correct 5 ms 5332 KB Output is correct
35 Correct 128 ms 5788 KB Output is correct
36 Correct 24 ms 4308 KB Output is correct
37 Correct 296 ms 7124 KB Output is correct
38 Correct 279 ms 6748 KB Output is correct
39 Correct 303 ms 6856 KB Output is correct
40 Correct 335 ms 6796 KB Output is correct
41 Correct 335 ms 6708 KB Output is correct
42 Runtime error 651 ms 262144 KB Execution killed with signal 9
43 Halted 0 ms 0 KB -