10619 2024. 04. 06 22:36:36 111 Nagysebességű vasút cpp17 Elfogadva 100/100 361ms 84432 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

#define INF (int)1e16

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,M;
	cin>>N>>M;
	vector<vector<pair<int,int>>>g(N);
	vector<tuple<int,int,int>>e;
	for(int i=0;i<M;i++){
		int a,b,c;
		cin>>a>>b>>c;
		g[a].emplace_back(b,c);
		g[b].emplace_back(a,c);
		e.emplace_back(a,b,c);
		e.emplace_back(b,a,c);
	}
	priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>q;
	vector<int>d0(N,INF),d1(N,INF),p(N,-1),v(N);
	d0[0]=0;
	q.emplace(0,0);
	while(!q.empty()){
		auto[d,i]=q.top();
		q.pop();
		if(d0[i]<d){
			continue;
		}
		for(auto[j,w]:g[i]){
			if(d0[i]+w<d0[j]){
				d0[j]=d0[i]+w;
				p[j]=i;
				q.emplace(d0[j],j);
			}
		}
	}
	for(int i=N-1;i>=0;i=p[i]){
		v[i]=1;
	}
	d1[N-1]=0;
	q.emplace(0,N-1);
	while(!q.empty()){
		auto[d,i]=q.top();
		q.pop();
		if(d1[i]<d){
			continue;
		}
		for(auto[j,w]:g[i]){
			if(d1[i]+w<d1[j]){
				d1[j]=d1[i]+w;
				q.emplace(d1[j],j);
			}
		}
	}
	int ans=INF-1;
	for(auto[a,b,c]:e){
		if(v[a]&&v[b]){
			continue;
		}
		int x=d0[N-1]-d0[a]-d1[b];
		if(x<=1){
			continue;
		}
		ans=min(ans,c-x+1);
	}
	cout<<(ans+1)%INF-1<<'\n';
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1828 KiB
2 Elfogadva 3ms 2060 KiB
subtask2 35/35
3 Elfogadva 4ms 2916 KiB
4 Elfogadva 4ms 3228 KiB
5 Elfogadva 4ms 3272 KiB
6 Elfogadva 4ms 3704 KiB
7 Elfogadva 4ms 3604 KiB
8 Elfogadva 4ms 3716 KiB
subtask3 30/30
9 Elfogadva 92ms 33864 KiB
10 Elfogadva 96ms 33960 KiB
11 Elfogadva 92ms 33900 KiB
12 Elfogadva 93ms 33896 KiB
13 Elfogadva 93ms 33920 KiB
14 Elfogadva 92ms 33916 KiB
subtask4 35/35
15 Elfogadva 345ms 84192 KiB
16 Elfogadva 344ms 84196 KiB
17 Elfogadva 344ms 84344 KiB
18 Elfogadva 349ms 84332 KiB
19 Elfogadva 354ms 84432 KiB
20 Elfogadva 356ms 84156 KiB
21 Elfogadva 361ms 84132 KiB
22 Elfogadva 358ms 84288 KiB
23 Elfogadva 360ms 84144 KiB
24 Elfogadva 174ms 50204 KiB
25 Elfogadva 92ms 34096 KiB
26 Elfogadva 93ms 34112 KiB
27 Elfogadva 90ms 34100 KiB