252772026-02-18 23:22:47999Utazás (40)cpp17Accepted 40/40140ms8260 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
#define int long long

signed main() {
    int n,m,Q;cin>>n>>m>>Q;
    vector<int> kerdesek(Q);
    for(int i = 0;i<Q;i++){
        cin>>kerdesek[i];
        kerdesek[i]--;
    }
    vector<vector<int>> v(n),g(n);
    vector<int> fok(n);
    for(int i = 0;i<m;i++){
        int a,b;
        cin>>a>>b;
        v[--a].push_back(--b);
        g[b].push_back(a);
        fok[a]++;
    }
    queue<int> q;
    vector<int> dp(n,-1);
    //int japan=0;
    for(int i = 0;i<n;i++){
        if(fok[i]==0){
            q.push(i);
            //japan=i;
        }
    }
    while(!q.empty()){
        int a=q.front();
        q.pop();
        bool csk1=true;
        for(int u : v[a]){
            if(dp[u]==2){
                csk1=false;
                break;
            }
        }
        if(csk1)dp[a]=2;
        else dp[a]=1;
        for(int u : g[a]){
            fok[u]--;
            if(fok[u]==0){
                q.push(u);
            }
        }
    }
    //cout<<japan<<endl;
    //for(int i : dp)cout<<i<<' ';return 0;
    for(int i : kerdesek){
        if(dp[i]==1)cout<<'A'<<endl;
        else cout<<'B'<<endl;
    }
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/01ms316 KiB
2Accepted0/098ms7224 KiB
3Accepted1/11ms508 KiB
4Accepted2/21ms316 KiB
5Accepted1/11ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/24ms476 KiB
8Accepted2/28ms820 KiB
9Accepted2/24ms564 KiB
10Accepted2/28ms1004 KiB
11Accepted2/234ms2284 KiB
12Accepted3/334ms2340 KiB
13Accepted3/335ms2508 KiB
14Accepted3/337ms2356 KiB
15Accepted3/337ms2356 KiB
16Accepted3/337ms2420 KiB
17Accepted3/372ms4604 KiB
18Accepted3/3140ms8248 KiB
19Accepted3/3138ms8260 KiB