Submission #261857

#TimeUsernameProblemLanguageResultExecution timeMemory
261857SakamotooCrocodile's Underground City (IOI11_crocodile)C++14
89 / 100
930 ms74664 KiB
#include "crocodile.h" #include<bits/stdc++.h> using namespace std; #define mp make_pair #define fi first #define se second int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]){ priority_queue<long long> jar[n+1]; vector<pair<long long, long long> > adj[n+1]; for(int i=0; i<m; i++){ adj[r[i][0]].push_back(mp(r[i][1],l[i])); adj[r[i][1]].push_back(mp(r[i][0],l[i])); } priority_queue<pair<long long, long long> > pq; for(int i=0; i<k; i++){ jar[p[i]].push(0); jar[p[i]].push(0); pq.push(mp(0,p[i])); } while(!pq.empty()){ long long x=-pq.top().fi,y=pq.top().se; pq.pop(); if(jar[y].top()<x) continue; if(x>1e9) continue; for(int i=0; i<adj[y].size(); i++){ long long ind=adj[y][i].fi,cost=adj[y][i].se; if(jar[ind].size()<2){ jar[ind].push(x+cost); if(jar[ind].size()==2){ pq.push(mp(-jar[ind].top(),ind)); } }else{ if(jar[ind].top()>x+cost){ jar[ind].pop(); jar[ind].push(x+cost); pq.push(mp(-jar[ind].top(),ind)); } } } } return jar[0].top(); }

Compilation message (stderr)

crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:30:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0; i<adj[y].size(); i++){
                ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...