10653 2024. 04. 07 18:57:32 999 Nagysebességű vasút cpp17 Hibás válasz 0/100 1.544s 29752 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
#include <queue>
using namespace std;

int main() {
	int n,m;cin>>n>>m;
	vector<vector<pair<int,int>>> v(n);
	for(int i = 0;i<m;i++){
		int a,b,c;
		cin>>a>>b>>c;
		v[a].push_back({b,c});
		v[b].push_back({a,c});
	}
	vector<int> disS(n,INT_MAX),disE(n,INT_MAX);
	priority_queue<pair<int, int>> q;
	disS[0]=0;
	disE[n-1]=0;
	q.push({0,0});
	vector<bool> proc1(n),proc2(n);
	while(!q.empty()){
		int a=q.top().second;
		q.pop();
		if(proc1[a])continue;
		proc1[a]=true;
		for(auto u:v[a]){
			int b=u.first,w=u.second;
			if(disS[b]>disS[a]+w){
				disS[b]=disS[a]+w;
				q.push({-disS[b],b});
			}
		}
	}
	q.push({0,n-1});
	while(!q.empty()){
		int a=q.top().second;
		q.pop();
		if(proc2[a])continue;
		proc1[a]=true;
		for(auto u:v[a]){
			int b=u.first,w=u.second;
			if(disE[b]>disE[a]+w){
				disE[b]=disE[a]+w;
				q.push({-disE[b],b});
			}
		}
	}
	int ans=INT_MAX;
	for(int i = 0;i<n;i++){
		for(auto u : v[i]){
			int a=i,b=u.first,c=u.second;
			if(disS[a]+disE[b]+c>disS[n-1]){
				if(disS[a]+disE[b]+c-disS[n-1]+1<c){cout<<a<<' '<<b<<endl;
					ans=min(ans,disS[a]+disE[b]+c-disS[n-1]+1);
				}
			}
			if(disS[b]+disE[a]+c>disS[n-1]){
				if(disS[a]+disE[b]+c-disS[n-1]+1<c){cout<<a<<' '<<b<<endl;
					ans=min(ans,disS[b]+disE[a]+c-disS[n-1]+1);
				}
			}
		}
	}cout<<(ans==INT_MAX?-1:ans)<<endl;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Hibás válasz 3ms 1812 KiB
2 Hibás válasz 3ms 2004 KiB
subtask2 0/35
3 Hibás válasz 6ms 2484 KiB
4 Hibás válasz 8ms 2704 KiB
5 Hibás válasz 4ms 2592 KiB
6 Hibás válasz 8ms 2880 KiB
7 Hibás válasz 10ms 2860 KiB
8 Hibás válasz 8ms 3160 KiB
subtask3 0/30
9 Hibás válasz 228ms 15392 KiB
10 Hibás válasz 178ms 15604 KiB
11 Hibás válasz 250ms 15816 KiB
12 Hibás válasz 180ms 15816 KiB
13 Hibás válasz 254ms 15848 KiB
14 Hibás válasz 241ms 15884 KiB
subtask4 0/35
15 Hibás válasz 1.1s 29212 KiB
16 Hibás válasz 1.008s 29348 KiB
17 Hibás válasz 851ms 29484 KiB
18 Hibás válasz 1.544s 29424 KiB
19 Hibás válasz 598ms 29500 KiB
20 Hibás válasz 549ms 29512 KiB
21 Hibás válasz 575ms 29516 KiB
22 Hibás válasz 569ms 29740 KiB
23 Hibás válasz 665ms 29752 KiB
24 Hibás válasz 691ms 20960 KiB
25 Hibás válasz 233ms 16656 KiB
26 Hibás válasz 180ms 16876 KiB
27 Hibás válasz 375ms 17008 KiB