Submission #258202

#TimeUsernameProblemLanguageResultExecution timeMemory
258202monus1042Crocodile's Underground City (IOI11_crocodile)C++17
0 / 100
3 ms3456 KiB
#include "crocodile.h" #include <bits/stdc++.h> using namespace std; typedef vector<int> vi; typedef long long ll; typedef pair<int,int> ii; typedef vector<ii> vii; typedef vector<ll> vll; #define pb push_back #define mkp make_pair #define all(X) X.begin(), X.end() const int MAXS = 100002; const ll inf = 1e15; vector< pair<int, ll> > g[MAXS]; priority_queue < pair<ll, int>, vector< pair<ll, int> >, greater< pair<ll,int> > > pq; vll d(MAXS, inf); int state[MAXS]; // 0 unvisited void dj(){ while(!pq.empty()){ int auxu = pq.top().second; ll w = pq.top().first; pq.pop(); if (state[auxu]){ d[auxu]=w; for (int i=0; i<(int)g[auxu].size(); i++){ int v=g[auxu][i].first; ll wuv=g[auxu][i].second; if (state[v] == 0){ pq.push(mkp(wuv, v)); } } } else state[auxu]++; } } int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]){ for (int i=0; i<M; i++){ g[ R[i][0] ].pb(mkp( R[i][1] , L[i])); g[ R[i][1] ].pb(mkp( R[i][0] , L[i])); } for (int i=0; i<K; i++){ pq.push(mkp(0, P[i])); d[P[i]]=0; state[P[i]]=1; } dj(); return (int)d[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...