Submission #1517278


Source Code Expand

#include <bits/stdc++.h>
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
using namespace std;

int main()
{
    int N, M;
    cin >> N >> M;

    vector<vector<int> > connect(N, vector<int>(N, -1));

    REP (i, M) {
        int u, v, l;
        cin >> u >> v >> l;
        u--;
        v--;
        connect[u][v] = l;
        connect[v][u] = l;
    }

    long long ans = INT_MAX;
    REP (i, N) {
        //繋がってなかったら無視
        if (connect[0][i] == -1)
            continue;

        //繋がってたら移動して,その道を除去
        //そうしてから0への最短経路を求める
        long long distance = connect[i][0];
        connect[i][0] = -1;

        priority_queue<int> pq;
        pq.push(i);
        vector<long long> cost(N, INT_MAX);
        cost[i] = 0;
        while (!pq.empty()) {
            int curr = pq.top();
            pq.pop();
            //printf("curr = %d\n", curr);

            REP (j, N) {
                if (connect[curr][j] == -1)
                    continue;

                long long new_cost = cost[curr] + connect[curr][j];
                if (new_cost < cost[j]) {
                    cost[j] = new_cost;
                    pq.push(j);
                }
            }
        }

        //REP (k, N) printf("cost[%d] = %lld\n", k, cost[k]);
        
        //復元
        connect[i][0] = distance;
        distance += cost[0];
        //printf("distance = %lld\n", distance);
        ans = min(ans, distance);

    }

    if (ans != INT_MAX)
        cout << ans << endl;
    else
        cout << -1 << endl;
}

Submission Info

Submission Time
Task C - Blue Bird
User tokumini
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1703 Byte
Status AC
Exec Time 908 ms
Memory 640 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 194 ms 384 KB
subtask1_02.txt AC 85 ms 384 KB
subtask1_03.txt AC 522 ms 512 KB
subtask1_04.txt AC 2 ms 256 KB
subtask1_05.txt AC 77 ms 384 KB
subtask1_06.txt AC 494 ms 512 KB
subtask1_07.txt AC 16 ms 256 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt AC 446 ms 512 KB
subtask1_10.txt AC 172 ms 384 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 26 ms 512 KB
subtask1_13.txt AC 41 ms 256 KB
subtask1_14.txt AC 2 ms 256 KB
subtask1_15.txt AC 908 ms 640 KB
subtask1_16.txt AC 488 ms 640 KB
subtask1_17.txt AC 28 ms 640 KB
subtask1_18.txt AC 720 ms 640 KB
subtask1_19.txt AC 748 ms 640 KB
subtask1_20.txt AC 120 ms 640 KB
subtask1_21.txt AC 224 ms 640 KB
subtask1_22.txt AC 901 ms 640 KB
subtask1_23.txt AC 823 ms 640 KB
subtask1_24.txt AC 176 ms 640 KB
subtask1_25.txt AC 530 ms 640 KB
subtask1_26.txt AC 122 ms 640 KB
subtask1_27.txt AC 119 ms 640 KB
subtask1_28.txt AC 28 ms 640 KB
subtask1_29.txt AC 127 ms 640 KB
subtask1_30.txt AC 2 ms 640 KB