Submission #6171517


Source Code Expand

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

int solve(int n, int m, const vector<vector<int> > & g, int start, int goal) {
    vector<array<int, 3> > dist(n, { INT_MAX, INT_MAX, INT_MAX });
    queue<pair<int, int> > que;
    auto push = [&](int x, int y, int d) {
        if (dist[x][y] != INT_MAX) return;
        dist[x][y] = d;
        que.emplace(x, y);
    };
    push(start, 0, 0);
    while (not que.empty()) {
        int x, y; tie(x, y) = que.front();
        que.pop();
        for (int z : g[x]) {
            push(z, (y + 1) % 3, dist[x][y] + 1);
        }
    }
    if (dist[goal][0] == INT_MAX) return -1;
    assert (dist[goal][0] % 3 == 0);
    return dist[goal][0] / 3;
}

int main() {
    int n, m; cin >> n >> m;
    vector<vector<int> > g(n);
    REP (i, m) {
        int u, v; cin >> u >> v;
        -- u; -- v;
        g[u].push_back(v);
    }
    int s, t; cin >> s >> t;
    -- s; -- t;
    cout << solve(n, m, g, s, t) << endl;
    return 0;
}

Submission Info

Submission Time
Task E - Hopscotch Addict
User kimiyuki
Language C++14 (GCC 5.4.1)
Score 500
Code Size 1031 Byte
Status AC
Exec Time 78 ms
Memory 6912 KiB

Judge Result

Set Name All Sample
Score / Max Score 500 / 500 0 / 0
Status
AC × 23
AC × 4
Set Name Test Cases
All cycle_01, cycle_02, cycle_03, killer_01, killer_02, killer_03, killer_04, long_01, long_02, random_dense_01, random_dense_02, random_max_01, random_max_02, random_max_03, random_max_04, random_max_05, random_max_06, sample_01, sample_02, sample_03, sample_04, tournament_01, tournament_02
Sample sample_01, sample_02, sample_03, sample_04
Case Name Status Exec Time Memory
cycle_01 AC 66 ms 6912 KiB
cycle_02 AC 66 ms 6912 KiB
cycle_03 AC 66 ms 6912 KiB
killer_01 AC 44 ms 896 KiB
killer_02 AC 43 ms 768 KiB
killer_03 AC 63 ms 6400 KiB
killer_04 AC 50 ms 4220 KiB
long_01 AC 54 ms 1408 KiB
long_02 AC 66 ms 6912 KiB
random_dense_01 AC 19 ms 768 KiB
random_dense_02 AC 39 ms 768 KiB
random_max_01 AC 70 ms 4736 KiB
random_max_02 AC 71 ms 4864 KiB
random_max_03 AC 70 ms 3968 KiB
random_max_04 AC 71 ms 4480 KiB
random_max_05 AC 64 ms 3968 KiB
random_max_06 AC 78 ms 6528 KiB
sample_01 AC 1 ms 256 KiB
sample_02 AC 1 ms 256 KiB
sample_03 AC 1 ms 256 KiB
sample_04 AC 1 ms 256 KiB
tournament_01 AC 43 ms 768 KiB
tournament_02 AC 43 ms 768 KiB