Submission #1281134

#TimeUsernameProblemLanguageResultExecution timeMemory
1281134AishaBitaro’s Party (JOI18_bitaro)C++20
0 / 100
1 ms572 KiB
#include "bits/stdc++.h"

using namespace std;

#define int long long

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int n, m, q;
    cin >> n >> m >> q;

    vector <vector <int>> g(n + 1);
    for (int i = 1; i <= m; i ++) {
        int u, v;
        cin >> u >> v;
        g[v].push_back(u);
    }

    for (int i = 1; i <= n; i ++) {
        sort(g[i].rbegin(), g[i].rend());
    }

    int begin;
    cin >> begin;
    int t; cin >> t;
    set <int> w;
    for (int i = 0; i < t; i ++) {
        int x; cin >> x;
        w.insert(x);
    }

    vector <int> dis(n + 1, -1), vis(n + 1);
    if (w.count(begin) == 0) dis[begin] = 0;

    auto dfs = [&](auto &&dfs, int i) -> void {
        vis[i] = 1;
        for (int x : g[i]) {
            if (!vis[x]) {
                dis[x] = dis[i] + 1;
                dfs(dfs, x);
            }
        }
    };

    dfs(dfs, begin);

    int ans = -1;
    for (int i = 1; i <= n; i ++) {
        if (w.count(i)) continue;
        ans = max(ans, dis[i]);
    }

    cout << ans << endl;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...