Submission #400767

# Submission time Handle Problem Language Result Execution time Memory
400767 2021-05-08T16:00:24 Z BERNARB01 Jakarta Skyscrapers (APIO15_skyscraper) C++17
0 / 100
1 ms 204 KB
#include <bits/stdc++.h>

using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n, m;
	cin >> n >> m;
	vector<vector<pair<int, long long>>> g(n);
	int target = -1, start = -1;
	for (int i = 0; i < n; i++) {
		int b, p;
		cin >> b >> p;
		if (i == 0) { 
			start = b;
		}
		if (i == 1) {
			target = b;
			continue;
		}
		for (int j = 0; j < n; j++) {
			int d = abs(b - j);
			if (d % p == 0) {
				g[b].emplace_back(j, d / p);
			}
		}
	}
	const long long inf = (long long) 8e18L;
	using T = long long;
	vector<T> dist(n, inf);
	priority_queue<pair<T, int>, vector<pair<T, int> >, greater<pair<T, int> > > s;
	dist[start] = 0;
	s.emplace(0, start);
	while (!s.empty()) {
		T exp = s.top().first;
		int u = s.top().second;
		s.pop();
		if (exp != dist[u]) {
			continue;
		}
		if (u == target) {
			break;
		}
		for (auto [v, w] : g[u]) {
			if (dist[u] + w < dist[v]) {
				dist[v] = dist[u] + w;
				s.emplace(dist[v], v);
			}
		}
	}
	cout << (dist[target] >= inf ? -1 : dist[target]) << '\n';
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -