제출 #1325435

#제출 시각아이디문제언어결과실행 시간메모리
1325435exoworldgd악어의 지하 도시 (IOI11_crocodile)C++20
100 / 100
300 ms45040 KiB
#include"crocodile.h"
#include<bits/stdc++.h>
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
#define ll long long
#define A array<int,2>
using namespace std;
int travel_plan(int N,int M,int R[][2],int L[],int K,int P[]){
	A a[N];
	vector<A>g[N];
	priority_queue<A,vector<A>,greater<>>pq;
	bool vs[N];
	for(int i=0;i<N;i++)a[i]={(int)1e9,(int)1e9};
	for(int i=0;i<M;i++)g[R[i][0]].push_back({R[i][1],L[i]}),g[R[i][1]].push_back({R[i][0],L[i]});
	for(int i=0;i<K;i++)a[P[i]]={0,0},pq.push({0,P[i]});
	while(pq.size()){
		auto[d,u]=pq.top();pq.pop();
		if(vs[u])continue;
		vs[u]=1;
		for(auto[v,w]:g[u]){
			if(d+w<a[v][1]){
				a[v][1]=d+w;
				if(a[v][1]<a[v][0])swap(a[v][0],a[v][1]);
				if(a[v][1]<(int)1e9)pq.push({a[v][1],v});
			}
		}
	}
	return a[0][1];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...