Submission #1372949


Source Code Expand

#include <iostream>
using namespace std;

const int INF = 1e9;

int main() {
  int N, M;
  cin >> N >> M;
  int cost[N][N], cost0_[N];
  // ワーシャルフロイドのための初期化
  for (int i = 0; i < N; i++) {
    cost0_[i] = i == 0 ? 0 : INF;
    for (int j = 0; j < N; j++) {
      cost[i][j] = i == j ? 0 : INF;
    }
  }
  int u, v, l;
  for (int i = 0; i < M; i++) {
    cin >> u >> v >> l;
    if (u - 1 == 0) cost0_[v-1] = l;
    else cost[u-1][v-1] = cost[v-1][u-1] = l;
  }

  // ワーシャルフロイド法で全頂点間の最短経路を求める
  for (int k = 0; k < N; k++) {
    for (int i = 0; i < N; i++) {
      for (int j = 0; j < N; j++) {
        cost[i][j] = min(cost[i][j], cost[i][k] + cost[k][j]);
      }
    }
  }

  // 点0から点0の隣接点までの距離 + その点から点0の他の隣接点までの最短距離 + その点から点0までの距離、の最小を求める
  int ans = INF;
  for (int i = 1; i < N; i++) {
    if (cost0_[i] == INF) continue;
    for (int j = 1; j < N; j++) {
      if (i == j) continue;
      ans = min(ans, cost0_[i] + cost[i][j] + cost0_[j]);
    }
  }

  // 解答
  cout << (ans == INF ? -1 : ans) << endl;
  return 0;
}

Submission Info

Submission Time
Task C - Blue Bird
User university
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1257 Byte
Status AC
Exec Time 68 ms
Memory 768 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 33
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask1_01.txt AC 17 ms 384 KB
subtask1_02.txt AC 16 ms 384 KB
subtask1_03.txt AC 41 ms 512 KB
subtask1_04.txt AC 2 ms 256 KB
subtask1_05.txt AC 9 ms 256 KB
subtask1_06.txt AC 40 ms 512 KB
subtask1_07.txt AC 4 ms 256 KB
subtask1_08.txt AC 4 ms 256 KB
subtask1_09.txt AC 39 ms 512 KB
subtask1_10.txt AC 18 ms 384 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 18 ms 512 KB
subtask1_13.txt AC 7 ms 256 KB
subtask1_14.txt AC 3 ms 256 KB
subtask1_15.txt AC 67 ms 640 KB
subtask1_16.txt AC 44 ms 640 KB
subtask1_17.txt AC 32 ms 640 KB
subtask1_18.txt AC 51 ms 640 KB
subtask1_19.txt AC 50 ms 640 KB
subtask1_20.txt AC 37 ms 640 KB
subtask1_21.txt AC 38 ms 640 KB
subtask1_22.txt AC 63 ms 640 KB
subtask1_23.txt AC 68 ms 768 KB
subtask1_24.txt AC 37 ms 640 KB
subtask1_25.txt AC 45 ms 640 KB
subtask1_26.txt AC 61 ms 640 KB
subtask1_27.txt AC 54 ms 640 KB
subtask1_28.txt AC 34 ms 640 KB
subtask1_29.txt AC 61 ms 640 KB
subtask1_30.txt AC 30 ms 640 KB