제출 #1287849

#제출 시각아이디문제언어결과실행 시간메모리
1287849putthi_usBitaro’s Party (JOI18_bitaro)C++20
14 / 100
2090 ms6464 KiB
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,q,ans=-1;
    bitset<100005> block=0;
    cin>>n>>m>>q;
    vector<vector<int>> path(n+1);
    for(int i=0;i<m;i++){
        int a,b;
        cin>>a>>b;
        path[a].push_back(b);
    }
    while(q--){
        block=0;
        int t,y,ans=-1;
        cin>>t>>y;
        for(int i=0;i<y;i++){
            int x;
            cin>>x;
            block[x]=1;
        }
        vector<int> dp(t+1,-1);
        // if(block[t]){
        //     cout<<-1<<'\n';continue;
        // }
        dp[t]=0;
        for(int i=t;i>=0;i--){
            
            // if(block[i]){
            //     continue;
            // }
            for(int x:path[i]){
                if(x>t){
                    continue;
                }
                if(dp[x]==-1){
                    continue;
                }
                // cout<<i<<' '<<x<<';';
                dp[i]=max(dp[i],dp[x]+1);
            }

            if(dp[i]==INT_MAX){
                continue;
            }
            if(block[i]){
                continue;
            }
            ans=max(ans,dp[i]);
        }
        cout<<ans<<'\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...