Submission #88011

#TimeUsernameProblemLanguageResultExecution timeMemory
88011Pajaraja악어의 지하 도시 (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...