Submission #660776

#TimeUsernameProblemLanguageResultExecution timeMemory
660776danikoynovJakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
94 ms64596 KiB
#include <bits/stdc++.h> #define endl '\n' using namespace std; typedef long long ll; void speed() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } const int maxn = 2010; const ll inf = 1e18; struct doge { int b, p; }d[maxn]; struct edge { int u; ll w; edge(int _u, ll _w) { u = _u; w = _w; } bool operator < (const edge &e) const { return w > e.w; } }; vector < edge > g[maxn]; int n, m, used[maxn]; ll dp[maxn]; void dijkstra(int s) { for (int i = 0; i < m; i ++) { used[i] = 0; dp[i] = inf; } priority_queue < edge > pq; pq.push(edge(0, 0)); dp[0] = 0; while(!pq.empty()) { edge cur = pq.top(); pq.pop(); if (!used[cur.u]) { used[cur.u] = 1; for (int i = 0; i < g[cur.u].size(); i ++) { edge nb = g[cur.u][i]; nb.w += cur.w; if (nb.w < dp[nb.u]) { dp[nb.u] = nb.w; pq.push(nb); } } } } } void solve() { cin >> n >> m; for (int i = 0; i < m; i ++) { cin >> d[i].b >> d[i].p; } for (int i = 0; i < m; i ++) for (int j = 0; j < m; j ++) { if (i == j) continue; int dis = abs(d[i].b - d[j].b); if (dis % d[i].p == 0) g[i].push_back(edge(j, dis / d[i].p)); } dijkstra(0); if (dp[1] == inf) cout << -1 << endl; else cout << dp[1] << endl; } int main() { solve(); return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'void dijkstra(int)':
skyscraper.cpp:61:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<edge>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |             for (int i = 0; i < g[cur.u].size(); i ++)
      |                             ~~^~~~~~~~~~~~~~~~~
#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...