Submission #402500

#TimeUsernameProblemLanguageResultExecution timeMemory
402500JasiekstrzCrocodile's Underground City (IOI11_crocodile)C++17
100 / 100
861 ms92948 KiB
#include "crocodile.h"
#include<bits/stdc++.h>
#define fi first
#define se second
using namespace std;
const int NN=1e5;
int vis[NN+10];
long long d[NN+10];
priority_queue<pair<int,int>> pq;
vector<pair<long long,int>> e[NN+10];
int travel_plan(int N,int M,int R[][2],int L[],int K,int P[])
{
	for(int i=0;i<M;i++)
	{
		e[R[i][0]].emplace_back(R[i][1],L[i]);
		e[R[i][1]].emplace_back(R[i][0],L[i]);
	}
	for(int i=0;i<K;i++)
	{
		vis[P[i]]=1;
		pq.push({0,P[i]});
	}
	while(!pq.empty())
	{
		int x=pq.top().se;
		long long c=-pq.top().fi;
		pq.pop();
		vis[x]++;
		if(vis[x]!=2)
			continue;
		//cerr<<x<<" "<<c<<"\n";
		d[x]=c;
		for(auto v:e[x])
		{
			if(vis[v.fi]<2)
				pq.push({-c-v.se,v.fi});
		}
	}
	return d[0];
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...