Submission #1308705

#TimeUsernameProblemLanguageResultExecution timeMemory
1308705mohammadhadinajafiBitaro’s Party (JOI18_bitaro)C++20
7 / 100
2096 ms8824 KiB


#include <bits/stdc++.h>
using namespace std;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int n,m,q;
    cin >> n >> m >> q;
    vector <int> a[n+1];
    for ( int i = 1; i <= m; i++ ){
        int u,v;
        cin >> u >> v;
        a[v].push_back(u); 
    }
    int h[n+1] = {0};
    while(q--){
        int t;
        cin >> t;
        int y;
        cin >> y;
        set <int> st;
        for ( int i = 1; i <= y; i++ ){
            int x;
            cin >> x;
            st.insert(x);
        }
        int ans = -1;
        queue<int> bfs;
        h[t] = 0; 
        bfs.push(t);
        while(!bfs.empty()){
            int u = bfs.front();
            bfs.pop();
            
            if(st.find(u) == st.end()){
                ans = max(ans,h[u]);
            }
            for ( int i = 0; i < (int)a[u].size(); i++ ){
                int v = a[u][i];
                if(h[v] < h[u] + 1){
                    h[v] = h[u] + 1;
                    bfs.push(v);
                }
            }
        }
        cout << ans << '\n';
        fill(h,h+n+1,0);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...