Submission #928096

#TimeUsernameProblemLanguageResultExecution timeMemory
928096OAleksaJakarta Skyscrapers (APIO15_skyscraper)C++14
0 / 100
1 ms1884 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++) { for (int j = a[i] + b[i], d = 1;j <= n;j += b[i], d++) { for (auto x : c[j]) { g[i].push_back({x, d}); } } for (int j = a[i] - b[i], d = 1;j >= 1;j -= b[i], d++) { for (auto x : c[j]) { g[i].push_back({x, d}); } } } 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 v = q.top().s; q.pop(); if (v == 2) break; for (auto u : g[v]) { if (dis[u.f] <= dis[v] + u.s) continue; dis[u.f] = dis[v] + u.s; q.push({-dis[u.f], u.f}); } } if (dis[2] == inf) cout << -1 << '\n'; else cout << dis[2] << '\n'; } return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:35:4: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   35 |    for (int i = 1;i <= m;i++)
      |    ^~~
skyscraper.cpp:37:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   37 |   priority_queue<pair<int, int>> q;
      |   ^~~~~~~~~~~~~~
#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...