Submission #115525

#TimeUsernameProblemLanguageResultExecution timeMemory
115525arnold518Crocodile's Underground City (IOI11_crocodile)C++14
100 / 100
794 ms66312 KiB
#include <bits/stdc++.h> #include "crocodile.h" using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAXN = 100000; const ll INF = 1e15; vector<pii> adj[MAXN+10]; pll dist[MAXN+10]; bool vis[MAXN+10]; struct Queue { int v; ll w; bool operator < (const Queue& p) const { return w>p.w; } }; int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { int i, j; for(i=0; i<M; i++) { int u=R[i][0], v=R[i][1], w=L[i]; adj[u].push_back({v, w}); adj[v].push_back({u, w}); } priority_queue<Queue> PQ; for(i=0; i<N; i++) dist[i]={INF, INF}; for(i=0; i<K; i++) dist[P[i]]={0, 0}, PQ.push({P[i], 0}); while(!PQ.empty()) { Queue T=PQ.top(); PQ.pop(); int now=T.v; if(vis[now]) continue; vis[now]=true; for(pii nxt : adj[now]) { if(dist[nxt.first].first>dist[now].second+nxt.second) { dist[nxt.first].second=dist[nxt.first].first; dist[nxt.first].first=dist[now].second+nxt.second; PQ.push({nxt.first, dist[nxt.first].second}); } else if(dist[nxt.first].second>dist[now].second+nxt.second) { dist[nxt.first].second=dist[now].second+nxt.second; PQ.push({nxt.first, dist[nxt.first].second}); } } } return dist[0].second; }

Compilation message (stderr)

crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:25:12: warning: unused variable 'j' [-Wunused-variable]
     int i, j;
            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...