Submission #400755

#TimeUsernameProblemLanguageResultExecution timeMemory
400755BERNARB01Jakarta Skyscrapers (APIO15_skyscraper)C++17
0 / 100
1 ms204 KiB
#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); for (int i = 0; i < n; i++) { int b, p; cin >> b >> p; for (int j = b + p, w = 1; j < n; j += p, w++) { g[b].emplace_back(j, w); } for (int j = b - p, w = 1; j >= 0; j -= p, w++) { g[b].emplace_back(j, w); } } priority_queue<pair<long long, int>, vector<pair<long long, int>>, greater<pair<long long, int>>> s; const long long inf = 8e18; vector<long long> dist(n, inf); dist[0] = 0; s.emplace(0, 0); while (!s.empty()) { auto [u, exp] = s.top(); s.pop(); if (exp != dist[u]) { continue; } for (auto [v, w] : g[u]) { if (dist[v] > dist[u] + w) { dist[v] = dist[u] + w; s.emplace(dist[v], v); } } } cout << (dist[1] == inf ? -1 : dist[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...