19052022-12-08 21:21:55sztomiUtazás (40)cpp17Wrong answer 20/4046ms8184 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    vector<vector<int>> utak;
    vector<int> kezdok;
    vector<int> be_db;
    int n, m, q;
    cin >> n >> m >> q;
    utak.assign(n+1, vector<int>());
    kezdok.resize(q);
    be_db.assign(n+1, 0);
    for(int i = 0; i < q; i++){
        cin >> kezdok[i];
    }
    int a, b;
    for(int i = 0; i < m; i++){
        cin >> a >> b;
        utak[a].push_back(b);
        be_db[b]++;
    }

    vector<int> top_sor;
    queue<int> sor;
    for(int i = 1; i <= n; i++){
        if(be_db[i] == 0){
            sor.push(i);
        }
    }

    int akt;
    while(!sor.empty()){
        akt = sor.front();
        sor.pop();
        top_sor.push_back(akt);
        for(int kov : utak[akt]){
            be_db[kov]--;
            if(be_db[kov] == 0){
                sor.push(kov);
            }
        }
    }

    vector<int> kezd_nyer(n, false);
    kezd_nyer[top_sor[n-1]] = true;
    for(int i = n-1; i > 0; i--){
        for(int kov : utak[top_sor[i]]){
            kezd_nyer[top_sor[i]] |= !kezd_nyer[kov];
        }
    }

    for(int x : kezdok){
        cout << (kezd_nyer[x] ? "A" : "B") << "\n";
    }

}
SubtaskSumTestVerdictTimeMemory
base20/40
1Accepted0/03ms2104 KiB
2Accepted0/035ms8184 KiB
3Wrong answer0/12ms2188 KiB
4Runtime error0/22ms2496 KiB
5Runtime error0/12ms2744 KiB
6Accepted2/22ms3000 KiB
7Accepted2/23ms3036 KiB
8Wrong answer0/24ms3568 KiB
9Accepted2/23ms3268 KiB
10Accepted2/24ms3520 KiB
11Wrong answer0/213ms4412 KiB
12Accepted3/314ms4524 KiB
13Accepted3/314ms4976 KiB
14Wrong answer0/314ms5000 KiB
15Wrong answer0/314ms5324 KiB
16Accepted3/314ms5296 KiB
17Accepted3/326ms6308 KiB
18Wrong answer0/346ms7772 KiB
19Wrong answer0/346ms7760 KiB