제출 #1359287

#제출 시각아이디문제언어결과실행 시간메모리
1359287JohanCommuter Pass (JOI18_commuter_pass)C++20
24 / 100
43 ms71156 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int INF = 1e18;
const int N = 3e3 + 5;
int dis[N][N];
signed main(){
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, m;
  cin >> n >> m;
  int u, v, s, t;
  cin >> s >> t >> u >> v;
  for(int i = 0; i < N; i++){
    for(int j = 0; j < N; j++){
      if(i != j)
        dis[i][j] = INF;
    }
  }
  for(int i = 1; i <= m; i++){
    int U, V, W;
    cin >> U >> V >> W;
    dis[U][V] = dis[V][U] = W;
  }
  for(int k = 1; k <= n; k++){
    for(int a = 1; a <= n; a++){
      for(int b = 1; b <= n; b++){
        if(dis[a][k] != INF && dis[k][b] != INF)
          dis[a][b] = min(dis[a][b], dis[a][k] + dis[k][b]);
      }
    }
  }
  int mn = dis[u][v];
  for(int a = 1; a <= n; a++){
    for(int b = 1; b <= n; b++){
      if(dis[s][a] + dis[a][b] + dis[b][t] == dis[s][t]){
        mn = min({mn, dis[u][a] + dis[b][v], dis[u][b] + dis[a][v]});
      }
    }
  }
  cout << mn << endl;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…