Submission #1167709

#TimeUsernameProblemLanguageResultExecution timeMemory
1167709herissonwowCommuter Pass (JOI18_commuter_pass)C++20
0 / 100
148 ms327680 KiB
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
#define ll long long
#define ld long double
#define en exit(0);
#define pb push_back
#define fi first
#define se second

using namespace std;

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int N = 1e5+5;
const ll INF = 1e18+5;

int main()
{
    //ios_base()::sync_with_stdio(false); cin.tie(0);
    int n, m, s, t, u, v; cin >> n >> m >> s >> t >> u >> v;
    int trains[n+1][n+1];
    for(int i = 0; i <= n; i++){
        for(int j = 0; j <=n; j++){
            trains[i][j] = 2147483647;
        }
    }
    for(int i = 0; i < n; i++){
        ll a, b, c; cin >> a >> b >> c;
        trains[a][b] = c;
        trains[b][a] = c;
    }
    bool marked[n+1];
    for(int caur = 1; caur <= n; caur++){
        for(int no = 1; no <=n; no++){
            for(int uz = 1; uz<=n; uz++){
                trains[no][uz] = min(trains[no][caur] + trains[caur][uz], trains[no][uz]);
            }
        }
    }
    ll TOT = trains[s][t];
    for(int i = 1; i <= n; i++){
        if(trains[s][i]+trains[i][t]==TOT)
            marked[i] = 1;
    }
    int res = 2147483647;
    for(int i = 1; i <= n; i++){
        if(marked[i])
            res = min(res, trains[i][v]);
    }
    cout << res;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...