Submission #928131

#TimeUsernameProblemLanguageResultExecution timeMemory
928131OAleksaJakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
1073 ms4216 KiB
#include <bits/stdc++.h> using namespace std; #define f first #define s second #define int long long const int N = 30069; const int inf = 1e18; int n, m, a[N], b[N], dis[N];; vector<int> c[N]; vector<pair<int, int>> g[N]; signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int tt = 1; //cin >> tt; while (tt--) { cin >> n >> m; for (int i = 1;i <= m;i++) { cin >> a[i] >> b[i], ++a[i]; c[a[i]].push_back(i); } for (int i = 1;i <= m;i++) { dis[i] = inf; } priority_queue<pair<int, int>> q; q.push({0, 1}); dis[1] = 0; while (!q.empty()) { auto i = q.top().s; auto w = abs(q.top().f); q.pop(); if (i == 2) break; for (int j = 1;j <= m;j++) { if (abs(a[i] - a[j]) % b[i] == 0) { int d = abs(a[i] - a[j]) / b[i]; if (dis[j] > w + d) { dis[j] = w + d; q.push({-dis[j], j}); } } } } if (dis[2] == inf) cout << -1 << '\n'; else cout << dis[2] << '\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...