Submission #29187

#TimeUsernameProblemLanguageResultExecution timeMemory
29187inqrCrocodile's Underground City (IOI11_crocodile)C++14
100 / 100
829 ms161912 KiB
#include "crocodile.h"
#include <bits/stdc++.h>
using namespace  std;
vector < pair < int , int > > ed[100005];
vector < int > wtex(100005,INT_MIN);
vector < bool > djikv(100005,0);
int travel_plan(int N, int M, int R[][2], int L[], int K, int P[])
{
	for(int i=0;i<M;i++){
		ed[R[i][0]].push_back(make_pair(R[i][1],L[i]));
		ed[R[i][1]].push_back(make_pair(R[i][0],L[i]));
	}
	for(int i=0;i<K;i++){
		wtex[P[i]]=0;
		ed[100004].push_back(make_pair(P[i],0));
	}
	priority_queue < pair < int , int > > djikq;
	djikq.push(make_pair(0,100004));
	wtex[100004]=0;
	while(!djikq.empty()){
		int vn=djikq.top().second;
		int wn=-djikq.top().first;
		djikq.pop();
		if(djikv[vn])continue;
		//printf("vn=%d wn=%d wtex=%d\n",vn,wn,wtex[vn]);
		if(wtex[vn]==INT_MIN){
			wtex[vn]=-wn;
			//printf("	vn=%d wn=%d wtex=%d\n",vn,wn,wtex[vn]);
			continue;
		}
		if(wtex[vn]<0){
			wtex[vn]=wn;
			//printf("	vn=%d wn=%d wtex=%d\n",vn,wn,wtex[vn]);
		}
		djikv[vn]=1;
		if(vn==0){
			return wtex[vn];
		}
		for(int i=0;i<ed[vn].size();i++){
			if(djikv[ed[vn][i].first]==0){
				djikq.push(make_pair(-(wn+ed[vn][i].second),ed[vn][i].first));
			}
		}
	}
	return -1;
}


Compilation message (stderr)

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