Submission #20323068


Source Code Expand

//http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_1_A&lang=ja
#include <bits/stdc++.h>
#define rep(i, N) for(int i = 0; i < (int)N; i++)
using namespace std;
typedef long long ll;
typedef pair<ll,ll> P;
typedef tuple<ll,ll,ll> T;
typedef vector<int> vi;
const ll INF = (1LL << 60); // > 10^9, int 2*INF

//ダイクストラ法
int main() {
    ll n,m,x,y;
    cin >> n >> m >> x >> y;
  
    vector<vector<T>> g(n+1); 
    ll u, v, t, k;
    rep(i, m) {
        scanf("%lld%lld%lld%lld", &u, &v, &t, &k);
        g[u].emplace_back(T(v, t, k)); //有向辺
        g[v].emplace_back(T(u, t, k)); //有向辺
    }

    priority_queue<P, vector<P>, greater<P>> pq;
    pq.push(P(0,x));
    vector<ll> res(n+1, INF);
    res[x] = 0;
    vector<bool> check(n+1, false);

    while (!pq.empty()) {
        P tmp = pq.top(); pq.pop();
        ll cv = tmp.second;
        if(check[cv]) continue;

        check[cv] = true;
        rep(i, g[cv].size()) {
            T ttt = g[cv][i];
            ll nv = get<0>(ttt), tt = get<1>(ttt), tk = get<2>(ttt);
            ll dtk = tk-res[cv]%tk;
            if(tk == dtk) dtk = 0;
            if(res[nv] > res[cv] + tt + dtk){
                res[nv] = res[cv] + tt + dtk;
                pq.push(P(res[nv], nv));
            }
        }

    }

    if(res[y] != INF) cout << res[y];
    else cout << -1;
}

Submission Info

Submission Time
Task E - Train
User samari06
Language C++ (GCC 9.2.1)
Score 500
Code Size 1408 Byte
Status AC
Exec Time 84 ms
Memory 13904 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:19:14: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   19 |         scanf("%lld%lld%lld%lld", &u, &v, &t, &k);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 4
AC × 28
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All hand.txt, max_01.txt, random_01.txt, random_02.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
Case Name Status Exec Time Memory
hand.txt AC 8 ms 3540 KiB
max_01.txt AC 80 ms 12860 KiB
random_01.txt AC 70 ms 12924 KiB
random_02.txt AC 45 ms 10384 KiB
random_05.txt AC 38 ms 7456 KiB
random_06.txt AC 35 ms 7616 KiB
random_07.txt AC 45 ms 10256 KiB
random_08.txt AC 42 ms 10180 KiB
random_11.txt AC 34 ms 7292 KiB
random_12.txt AC 34 ms 7460 KiB
random_13.txt AC 35 ms 7520 KiB
random_14.txt AC 37 ms 7972 KiB
random_15.txt AC 43 ms 9768 KiB
random_16.txt AC 38 ms 7444 KiB
random_17.txt AC 45 ms 9820 KiB
random_18.txt AC 33 ms 7428 KiB
random_21.txt AC 84 ms 13108 KiB
random_22.txt AC 73 ms 12988 KiB
random_23.txt AC 71 ms 13100 KiB
random_24.txt AC 69 ms 12928 KiB
random_31.txt AC 83 ms 13804 KiB
random_32.txt AC 84 ms 13904 KiB
random_33.txt AC 80 ms 13872 KiB
random_34.txt AC 77 ms 13748 KiB
sample_01.txt AC 2 ms 3704 KiB
sample_02.txt AC 2 ms 3672 KiB
sample_03.txt AC 2 ms 3604 KiB
sample_04.txt AC 2 ms 3712 KiB