Submission #62879

#TimeUsernameProblemLanguageResultExecution timeMemory
62879theknife2001Crocodile's Underground City (IOI11_crocodile)C++17
100 / 100
1449 ms67128 KiB
#include <bits/stdc++.h> #include "crocodile.h" #define ll long long #define ii pair< ll , int > #define se second #define fi first using namespace std; const int NN=1e5+55; vector < pair < int , int > > vec[NN]; priority_queue < ii , vector <ii> , greater<ii> >pq; ll dist[NN]; int cnt[NN]; int n; void dijk() { int v,u; long long l,c; while(pq.size()) { c=pq.top().fi; u=pq.top().se; pq.pop(); cnt[u]++; if(cnt[u]!=2) continue ; dist[u]=c; for(int i=0;i<vec[u].size();i++) { l=vec[u][i].fi; v=vec[u][i].se; if(cnt[v]<2) pq.push({l+c,v}); } } } int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { n=N; for(int i=0;i<N;i++) dist[i]=1e17; for(int i=0;i<K;i++) { dist[P[i]]=0; pq.push({0,P[i]}); cnt[P[i]]=1; } for(int i=0;i<M;i++) { vec[R[i][0]].push_back({L[i],R[i][1]}); vec[R[i][1]].push_back({L[i],R[i][0]}); } dijk(); int ret=dist[0]; return ret; }

Compilation message (stderr)

crocodile.cpp: In function 'void dijk()':
crocodile.cpp:30:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<vec[u].size();i++)
                     ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...