Submission #887503

#TimeUsernameProblemLanguageResultExecution timeMemory
887503stdfloatJakarta Skyscrapers (APIO15_skyscraper)C++17
0 / 100
1 ms460 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector<int> a(n, 0); for (int i = 0; i < m; i++) { int b; cin >> b >> a[b]; } vector<int> dis(n, INT_MAX); dis[0] = 0; priority_queue<vector<int>> q; q.push({0, 0}); while (!q.empty()) { vector<int> v = q.top(); q.pop(); for (int i = v[1] - a[v[1]]; i >= 0; i -= a[v[1]]) { if (dis[i] > dis[v[1]] + (v[1] - i) / a[v[1]]) { dis[i] = dis[v[1]] + (v[1] - i) / a[v[1]]; if (a[i]) q.push({-dis[i], i}); } } for (int i = v[1] + a[v[1]]; i < n; i += a[v[1]]) { if (dis[i] > dis[v[1]] + (i - v[1]) / a[v[1]]) { dis[i] = dis[v[1]] + (i - v[1]) / a[v[1]]; if (a[i]) q.push({-dis[i], i}); } } } cout << dis[1]; }
#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...