結果

問題 No.3653 Space-Time Courier
コンテスト
ユーザー 👑 loop0919
提出日時 2026-08-28 21:50:17
言語 C++23
(gcc 15.2.0 + boost 1.90.0)
コンパイル:
g++-15 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
TLE  
実行時間 -
コード長 973 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,697 ms
コンパイル使用メモリ 369,716 KB
実行使用メモリ 52,480 KB
最終ジャッジ日時 2026-08-28 21:50:31
合計ジャッジ時間 9,422 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other TLE * 1 -- * 27
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

# pragma GCC target("avx2")
# pragma GCC optimize("O3")
# pragma GCC optimize("unroll-loops")

#include <bits/stdc++.h>
#include <atcoder/modint>

using namespace std;
using namespace atcoder;

using ll = long long;
constexpr ll INF = 1e12;

#define rep(i, n) for(int i = 0; i < (n); i++)

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

    vector<ll> P(N);
    for (auto &p: P) cin >> p;
    
    vector d(N, vector<ll>(N, INF));
    rep(_, M) {
        int u, v; ll t; cin >> u >> v >> t;
        d[u - 1][v - 1] = t;
    }

    rep(i, N) d[i][i] = 0;

    rep(k, N) rep(i, N) rep(j, N) {
        d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
    }

    ll min_dist = INF;
    rep(i, N) rep(j, N) {
        if (i == j) continue;
        min_dist = min(min_dist, d[i][j] + P[i] + P[j]);
    }

    ll count = 0;
    rep(i, N) rep(j, N) {
        if (i == j) continue;
        if (d[i][j] + P[i] + P[j] == min_dist) count++;
    }

    cout << min_dist << ' ' << count << '\n';
}
0