Submission #1320916

#TimeUsernameProblemLanguageResultExecution timeMemory
1320916kawhietJakarta Skyscrapers (APIO15_skyscraper)C++20
10 / 100
1 ms412 KiB
#include <bits/stdc++.h> using namespace std; #define int long long constexpr int inf = 1e18; signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector<int> b(m), p(m); for (int i = 0; i < m; i++) { cin >> b[i] >> p[i]; } vector<vector<array<int, 2>>> g(n); for (int i = 0; i < m; i++) { for (int j = 0; j < m; j++) { if (i == j) continue; int x = abs(b[i] - b[j]); if (x % p[i] == 0) { g[b[i]].push_back({b[j], x / p[i]}); } } } vector<int> d(n, inf); priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q; q.push({b[0], 0}); while (!q.empty()) { auto [dist, u] = q.top(); q.pop(); if (d[u] < dist) continue; d[u] = dist; for (auto [v, w] : g[u]) { if (dist + w < d[v]) { d[v] = dist + w; q.push({d[v], v}); } } } cout << (d[b[1]] == inf ? -1 : d[b[1]]) << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...