Submission #699848

# Submission time Handle Problem Language Result Execution time Memory
699848 2023-02-18T07:01:12 Z happypotato Jakarta Skyscrapers (APIO15_skyscraper) C++17
10 / 100
18 ms 22000 KB
#include <bits/stdc++.h>
using namespace std;
const int mxN = 3e4 + 1;
pair<int, int> doge[mxN];
queue<int> jump[mxN];
map<int, int> dist[mxN];
priority_queue<pair<int, pair<int, int>>> pq;
int n;
void AddElement(pair<int, pair<int, int>> &nxt) {
	if (!(0 <= nxt.second.first && nxt.second.first < n)) return;
	if (dist[nxt.second.first].find(nxt.second.second) == dist[nxt.second.first].end()) {
		pq.push(nxt);
		dist[nxt.second.first][nxt.second.second] = nxt.first;
	} else if (dist[nxt.second.first][nxt.second.second] > nxt.first) {
		pq.push(nxt);
		dist[nxt.second.first][nxt.second.second] = nxt.first;
	}
}
void solve() {
	int m;
	cin >> n >> m;
	for (int i = 0; i < m; i++) {
		cin >> doge[i].first >> doge[i].second;
		if (i != 0) jump[doge[i].first].push(doge[i].second);
	}
	pq.push({0, doge[0]});
	dist[doge[0].first][doge[0].second] = 0;
	while (!pq.empty()) {
		pair<int, pair<int, int>> cur = pq.top();
		pq.pop();
		if (dist[cur.second.first][cur.second.second] < cur.first) continue;
		if (cur.second.first == doge[1].first) {
			cout << cur.first << endl;
			return;
		}
		pair<int, pair<int, int>> nxt;
		while (!jump[cur.second.first].empty()) {
			int delta = jump[cur.second.first].front();
			jump[cur.second.first].pop();
			nxt = {cur.first, {cur.second.first, delta}};
			AddElement(nxt);
		}
		nxt = {cur.first + 1, {cur.second.first - cur.second.second, cur.second.second}};
		AddElement(nxt);
		nxt = {cur.first + 1, {cur.second.first + cur.second.second, cur.second.second}};
		AddElement(nxt);
	}
	cout << "-1\n";
}
int main() {
	solve();
}
# Verdict Execution time Memory Grader output
1 Correct 12 ms 21844 KB Output is correct
2 Correct 15 ms 21800 KB Output is correct
3 Correct 12 ms 21844 KB Output is correct
4 Correct 13 ms 21908 KB Output is correct
5 Correct 15 ms 21892 KB Output is correct
6 Correct 12 ms 21844 KB Output is correct
7 Correct 12 ms 21844 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 12 ms 21844 KB Output is correct
2 Correct 15 ms 21848 KB Output is correct
3 Correct 14 ms 21844 KB Output is correct
4 Correct 13 ms 21788 KB Output is correct
5 Correct 18 ms 21864 KB Output is correct
6 Correct 13 ms 21896 KB Output is correct
7 Correct 14 ms 21844 KB Output is correct
8 Correct 16 ms 21844 KB Output is correct
9 Correct 14 ms 21844 KB Output is correct
10 Incorrect 13 ms 21844 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 12 ms 21844 KB Output is correct
2 Correct 12 ms 21844 KB Output is correct
3 Correct 12 ms 21852 KB Output is correct
4 Correct 12 ms 21844 KB Output is correct
5 Correct 14 ms 21808 KB Output is correct
6 Correct 13 ms 21848 KB Output is correct
7 Correct 14 ms 21844 KB Output is correct
8 Correct 12 ms 21844 KB Output is correct
9 Correct 13 ms 21844 KB Output is correct
10 Incorrect 17 ms 21844 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 12 ms 21844 KB Output is correct
2 Correct 13 ms 21844 KB Output is correct
3 Correct 12 ms 21844 KB Output is correct
4 Correct 13 ms 21844 KB Output is correct
5 Correct 13 ms 21868 KB Output is correct
6 Correct 13 ms 21904 KB Output is correct
7 Correct 13 ms 22000 KB Output is correct
8 Correct 14 ms 21844 KB Output is correct
9 Correct 13 ms 21844 KB Output is correct
10 Incorrect 14 ms 21844 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 12 ms 21844 KB Output is correct
2 Correct 14 ms 21844 KB Output is correct
3 Correct 12 ms 21844 KB Output is correct
4 Correct 12 ms 21916 KB Output is correct
5 Correct 12 ms 21844 KB Output is correct
6 Correct 14 ms 21844 KB Output is correct
7 Correct 13 ms 21808 KB Output is correct
8 Correct 15 ms 21844 KB Output is correct
9 Correct 14 ms 21844 KB Output is correct
10 Incorrect 16 ms 21876 KB Output isn't correct
11 Halted 0 ms 0 KB -