Submission #1131127

#TimeUsernameProblemLanguageResultExecution timeMemory
1131127irmuunCommuter Pass (JOI18_commuter_pass)C++20
0 / 100
231 ms327680 KiB
#include<bits/stdc++.h>

using namespace std;

#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()

int main(){
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    ll n,m;
    cin>>n>>m;
    ll s,t;
    cin>>s>>t;
    ll u,v;
    cin>>u>>v;
    auto dist=vector(n+5,vector<ll>(n+5,1e18));
    for(ll i=1;i<=n;i++){
        dist[i][i]=0;
    }
    vector<pair<ll,ll>>g[n+5];
    for(ll i=1;i<=m;i++){
        ll a,b,c;
        cin>>a>>b>>c;
        dist[a][b]=c;
        dist[b][a]=c;
    }
    for(ll k=1;k<=n;k++){
        for(ll i=1;i<=n;i++){
            for(ll j=1;j<=n;j++){
                dist[i][j]=min(dist[i][j],dist[i][k]+dist[k][j]);
            }
        }
    }
    ll ans=dist[u][v];
    for(ll i=1;i<=n;i++){
        for(ll j=1;j<=n;j++){//s->i->j->t
            if(dist[s][i]+dist[i][j]+dist[j][t]==dist[s][t]){
                ans=min(ans,dist[u][i]+dist[j][v]);
            }
        }
    }
    cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...