Submission #1252352

#TimeUsernameProblemLanguageResultExecution timeMemory
1252352MuhammetBitaro’s Party (JOI18_bitaro)C++20
14 / 100
2093 ms16456 KiB
#include "bits/stdc++.h"
 
using namespace std;
 
#define ll long long
#define SZ(s) (int)s.size()
#define ff first
#define ss second

const int N = 1e5 + 5;

vector <int> v[N], vis, v1[N], ds;

void f(int x) {
    if(ds[x] != -(1e9 + 1)) return;
    ds[x] = (vis[x] ? 0 : -1e9);
    for(auto i : v1[x]) {
        f(i);
        ds[x] = max(ds[x], ds[i] + 1);
    }
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(nullptr);

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

    for(int i = 1; i <= m; i++) {
        int u1, u2;
        cin >> u1 >> u2;
        v[u1].push_back(u2);
        v1[u2].push_back(u1);
    }

    vector <int> a;
    while(q--) {
        int t, y;
        cin >> t >> y;
        a.resize(y);
        for(int i = 0; i < y; i++) {
            cin >> a[i];
        }
        vis.assign(n+1, true);
        for(auto i : a) {
            vis[i] = false;
        }
        ds.assign(n+1, -(1e9 + 1));
        f(t);
        cout << (ds[t] < 0 ? -1 : ds[t]) << '\n';
    }

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