提出 #57838602


ソースコード 拡げる

#include <iostream>
#include <vector>
#include <queue>

const long long LINF = 1ull << 60u;

using namespace std;


int main() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);

    int N, M;
    cin >> N >> M;

    vector<long long> H(N);
    for (int i = 0; i < N; ++i) {
        cin >> H[i];
    }

    vector<vector<pair<int, long long>>> graph(N);
    for (int i = 0; i < M; ++i) {
        int U, V;
        cin >> U >> V;
        U--;
        V--;

        if (H[U] >= H[V]) {
            graph[U].emplace_back(V, 0);
            graph[V].emplace_back(U, H[U] - H[V]);
        } else {
            graph[V].emplace_back(U, 0);
            graph[U].emplace_back(V, H[V] - H[U]);
        }
    }

    // dijkstra
    priority_queue<pair<long long, int>, vector<pair<long long, int>>, greater<>> que;
    que.emplace(0, 0);

    vector<bool> seen(N);
    vector<long long> distance(N, LINF);
    distance[0] = 0;

    while (not que.empty()) {
        const auto [now_dist, u] = que.top();
        que.pop();
        if (seen[u]) {
            continue;
        }
        seen[u] = true;

        for (auto [v, d]: graph[u]) {
            const auto new_dist = now_dist + d;
            if (new_dist < distance[v]) {
                distance[v] = new_dist;
                que.emplace(new_dist, v);
            }
        }
    }

    long long ans = LINF;
    for (int u = 0; u < N; ++u) {
        ans = min(ans, distance[u] - H[0] + H[u]);
    }
    cout << -ans << endl;

    return 0;
}

提出情報

提出日時
問題 E - Skiing
ユーザ MitI_7
言語 C++ 20 (gcc 12.2)
得点 500
コード長 1568 Byte
結果 AC
実行時間 109 ms
メモリ 21832 KiB

ジャッジ結果

セット名 Sample All After_contest
得点 / 配点 0 / 0 500 / 500 0 / 0
結果
AC × 2
AC × 38
AC × 5
セット名 テストケース
Sample example_00.txt, example_01.txt
All example_00.txt, example_01.txt, hand_00.txt, hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, multi_00.txt, multi_01.txt, multi_02.txt, multi_03.txt, multi_04.txt, multi_05.txt, multi_06.txt, multi_07.txt, multi_08.txt, multi_09.txt, multi_10.txt, multi_11.txt, multi_12.txt, multi_13.txt, multi_14.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt
After_contest after_contest_01.txt, after_contest_02.txt, after_contest_03.txt, after_contest_04.txt, after_contest_05.txt
ケース名 結果 実行時間 メモリ
after_contest_01.txt AC 1 ms 3448 KiB
after_contest_02.txt AC 48 ms 21424 KiB
after_contest_03.txt AC 39 ms 17412 KiB
after_contest_04.txt AC 39 ms 17940 KiB
after_contest_05.txt AC 1 ms 3488 KiB
example_00.txt AC 1 ms 3424 KiB
example_01.txt AC 1 ms 3400 KiB
hand_00.txt AC 1 ms 3308 KiB
hand_01.txt AC 1 ms 3424 KiB
hand_02.txt AC 102 ms 21240 KiB
hand_03.txt AC 101 ms 21112 KiB
hand_04.txt AC 102 ms 21108 KiB
hand_05.txt AC 102 ms 21224 KiB
multi_00.txt AC 62 ms 14884 KiB
multi_01.txt AC 69 ms 16996 KiB
multi_02.txt AC 56 ms 14128 KiB
multi_03.txt AC 62 ms 14900 KiB
multi_04.txt AC 61 ms 15000 KiB
multi_05.txt AC 102 ms 19348 KiB
multi_06.txt AC 49 ms 13296 KiB
multi_07.txt AC 67 ms 16256 KiB
multi_08.txt AC 70 ms 16452 KiB
multi_09.txt AC 54 ms 14924 KiB
multi_10.txt AC 78 ms 18900 KiB
multi_11.txt AC 65 ms 15628 KiB
multi_12.txt AC 82 ms 18308 KiB
multi_13.txt AC 83 ms 18820 KiB
multi_14.txt AC 73 ms 16160 KiB
random_00.txt AC 104 ms 21756 KiB
random_01.txt AC 109 ms 21832 KiB
random_02.txt AC 101 ms 21804 KiB
random_03.txt AC 26 ms 12396 KiB
random_04.txt AC 26 ms 12436 KiB
random_05.txt AC 26 ms 12312 KiB
random_06.txt AC 18 ms 7492 KiB
random_07.txt AC 17 ms 7556 KiB
random_08.txt AC 14 ms 6684 KiB
random_09.txt AC 29 ms 9044 KiB
random_10.txt AC 49 ms 12772 KiB
random_11.txt AC 21 ms 7724 KiB
random_12.txt AC 30 ms 9772 KiB
random_13.txt AC 22 ms 8108 KiB
random_14.txt AC 14 ms 6480 KiB