Submission #88011

#TimeUsernameProblemLanguageResultExecution timeMemory
88011PajarajaCrocodile's Underground City (IOI11_crocodile)C++17
100 / 100
1522 ms106532 KiB
#include "crocodile.h" #include <bits/stdc++.h> using namespace std; vector<pair<int,int> > g[100007]; int cnt[100007],d[100007]; int travel_plan(int N, int M,int R[][2],int L[],int K,int P[]) { fill(d,d+100007,-1); for(int i=0;i<M;i++) { pair<int,int> p=make_pair(-L[i],R[i][0]); g[R[i][1]].push_back(p); p.second=R[i][1]; g[R[i][0]].push_back(p); } priority_queue<pair<int,int> > q; for(int i=0;i<K;i++) { for(int j=0;j<g[P[i]].size();j++) q.push(g[P[i]][j]); d[P[i]]=0; } while(!q.empty()) { pair<int,int> p=q.top(); q.pop(); if(d[p.second]!=-1) continue; cnt[p.second]++; if(cnt[p.second]==2) { d[p.second]=p.first; for(int i=0;i<g[p.second].size();i++) { pair<int,int> r=g[p.second][i]; r.first+=p.first; q.push(r); } } } return -d[0]; }

Compilation message (stderr)

crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:19:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for(int j=0;j<g[P[i]].size();j++) q.push(g[P[i]][j]);
                  ~^~~~~~~~~~~~~~~
crocodile.cpp:31:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int i=0;i<g[p.second].size();i++)
                ~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...