Submission #1281141

#TimeUsernameProblemLanguageResultExecution timeMemory
1281141AishaBitaro’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, - (int)1e18), vis(n + 1);

    if (w.count(begin) == 0) dis[begin] = 0;
    else {
        cout << -1 << endl;
        return 0;
    }

    for (int i = begin; i >= 1; i --) {
        for (int x : g[i]) {
            dis[x] = max(dis[x], dis[i] + 1);
        }
    }

    int ans = -1;
    for (int i = 1; i <= begin; 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...