252772026-02-18 23:22:47999Utazás (40)cpp17Elfogadva 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;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/098ms7224 KiB
3Elfogadva1/11ms508 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/24ms476 KiB
8Elfogadva2/28ms820 KiB
9Elfogadva2/24ms564 KiB
10Elfogadva2/28ms1004 KiB
11Elfogadva2/234ms2284 KiB
12Elfogadva3/334ms2340 KiB
13Elfogadva3/335ms2508 KiB
14Elfogadva3/337ms2356 KiB
15Elfogadva3/337ms2356 KiB
16Elfogadva3/337ms2420 KiB
17Elfogadva3/372ms4604 KiB
18Elfogadva3/3140ms8248 KiB
19Elfogadva3/3138ms8260 KiB