106952024-04-09 21:07:42111Rendőrségi őrjárat 2cpp17Elfogadva 100/10078ms44504 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,M,L;
	cin>>N>>M>>L;
	vector<vector<int>>g(N);
	for(int i=0;i<M;i++){
		int a,b;
		cin>>a>>b;
		g[a].push_back(b);
		g[b].push_back(a);
	}
	vector<int>v(N,-1);
	for(int i=0;i<L;i++){
		int c;
		cin>>c;
		v[c]=i;
	}
	vector<int>d(N,N*2);
	priority_queue<pair<int,int>>q;
	d[0]=0;
	q.emplace(0,0);
	while(!q.empty()){
		auto[c,i]=q.top();
		q.pop();
		c*=-1;
		if(c!=d[i]){
			continue;
		}
		for(int j:g[i]){
			int dd=c+1;
			if(v[j]==dd%L){
				dd++;
			}
			if(dd<d[j]){
				d[j]=dd;
				q.emplace(-dd,j);
			}
		}
	}
	cout<<d[N-1]<<'\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1832 KiB
2Elfogadva3ms2052 KiB
subtask230/30
3Elfogadva3ms2488 KiB
4Elfogadva3ms2700 KiB
5Elfogadva3ms2932 KiB
6Elfogadva3ms3048 KiB
7Elfogadva3ms3072 KiB
8Elfogadva3ms3268 KiB
9Elfogadva3ms3464 KiB
subtask330/30
10Elfogadva56ms18572 KiB
11Elfogadva56ms20044 KiB
12Elfogadva57ms21532 KiB
13Elfogadva59ms23276 KiB
14Elfogadva61ms24828 KiB
subtask440/40
15Elfogadva76ms27436 KiB
16Elfogadva78ms28948 KiB
17Elfogadva70ms29272 KiB
18Elfogadva71ms30824 KiB
19Elfogadva71ms32360 KiB
20Elfogadva75ms34200 KiB
21Elfogadva74ms35740 KiB
22Elfogadva75ms37508 KiB
23Elfogadva70ms44504 KiB
24Elfogadva61ms40228 KiB