Submission #1691162


Source Code Expand

#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;

using ll = long long;
using P = pair<int, int>;

// 4近傍、8近傍
int dx[] = {1, 0, -1, 0, 1, -1, -1, 1};
int dy[] = {0, 1, 0, -1, 1, 1, -1, -1};

const int INF = 1e7;
int N, M;
int edge[310][310];
int dist[310];

void dijkstra(int s) {
  dist[s] = 0;
  queue<int> next;
  int cur = s;
  next.push(cur);

  while (!next.empty()) {
    cur = next.front();
    next.pop();

    for (int i = 0; i < N; i++) {
      if (edge[cur][i] == 0) continue;
      if (cur == i) continue;

      if (dist[i] > dist[cur] + edge[cur][i]) {
        dist[i] = dist[cur] + edge[cur][i];
        next.push(i);
      }
    }
  }
}

int main() {
  // 入力
  cin >> N >> M;
  int u, v, l;
  for (int i = 0; i < M; i++) {
    cin >> u >> v >> l;
    u--; v--;
    edge[u][v] = edge[v][u] = l;
  }

  // ダイクストラ法で最短距離を探す
  int ans = INF;
  for (int i = 1; i < N; i++) {
    if (edge[0][i] == 0) continue;

    int tmp = edge[0][i];
    edge[0][i] = edge[i][0] = 0;
    fill(dist, dist + 310, INF);
    dijkstra(i);
    if (dist[0] != INF) ans = min(ans, dist[0] + tmp);
    edge[0][i] = edge[i][0] = tmp;
  }

  // 解答
  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 0
Code Size 1464 Byte
Status WA
Exec Time 745 ms
Memory 640 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 3
AC × 32
WA × 1
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 172 ms 512 KB
subtask1_02.txt AC 61 ms 512 KB
subtask1_03.txt AC 436 ms 512 KB
subtask1_04.txt AC 2 ms 256 KB
subtask1_05.txt AC 68 ms 384 KB
subtask1_06.txt AC 367 ms 512 KB
subtask1_07.txt AC 12 ms 384 KB
subtask1_08.txt AC 2 ms 384 KB
subtask1_09.txt AC 300 ms 512 KB
subtask1_10.txt AC 137 ms 512 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 15 ms 512 KB
subtask1_13.txt AC 28 ms 384 KB
subtask1_14.txt AC 2 ms 384 KB
subtask1_15.txt AC 622 ms 640 KB
subtask1_16.txt AC 436 ms 640 KB
subtask1_17.txt AC 16 ms 640 KB
subtask1_18.txt AC 691 ms 640 KB
subtask1_19.txt AC 745 ms 640 KB
subtask1_20.txt AC 84 ms 640 KB
subtask1_21.txt AC 166 ms 640 KB
subtask1_22.txt AC 677 ms 640 KB
subtask1_23.txt AC 591 ms 640 KB
subtask1_24.txt AC 117 ms 640 KB
subtask1_25.txt AC 470 ms 640 KB
subtask1_26.txt AC 109 ms 640 KB
subtask1_27.txt AC 105 ms 640 KB
subtask1_28.txt AC 14 ms 640 KB
subtask1_29.txt AC 113 ms 640 KB
subtask1_30.txt WA 2 ms 640 KB