18182022-12-04 09:00:25sztomiBürokrácia (40)cpp17Elfogadva 40/4023ms7176 KiB
#include <bits/stdc++.h>

using namespace std;

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


    int n;
    cin >> n;
    vector<int> kov(n+1, -1);
    vector<int> be(n+1, 0);
    char tipus;
    int torol;
    for(int i = 1; i <= n; i++){
        cin >> tipus;
        if(tipus == 'V'){
            cin >> torol;
            kov[i] = torol;
            be[torol]++;
        }
    }

    vector<bool> aktiv(n+1, true);
    queue<int> q;
    for(int i = 1; i <= n; i++){
        if(be[i] == 0){
            q.push(i);
        }
    }

    int akt;
    while(!q.empty()){
        akt = q.front();
        q.pop();

        int x = kov[akt];
        if(x != -1){
            if(aktiv[akt]){
                aktiv[x] = false;
            }
            be[x]--;
            if(be[x] == 0){
                q.push(x);
            }
        }
    }
    vector<int> ki;
    for(int i = 1; i <= n; i++){
        if(aktiv[i]){
            ki.push_back(i);
        }
    }
    cout << ki.size() << "\n";
    for(int x : ki){
        cout << x << " ";
    }
    cout << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/03ms1824 KiB
2Elfogadva1/12ms2060 KiB
3Elfogadva1/12ms2264 KiB
4Elfogadva1/12ms2492 KiB
5Elfogadva1/114ms5832 KiB
6Elfogadva1/119ms4808 KiB
7Elfogadva1/119ms5004 KiB
8Elfogadva2/221ms5304 KiB
9Elfogadva2/221ms5328 KiB
10Elfogadva2/223ms5460 KiB
11Elfogadva2/223ms5868 KiB
12Elfogadva2/214ms6472 KiB
13Elfogadva2/214ms6476 KiB
14Elfogadva2/221ms5876 KiB
15Elfogadva2/220ms6300 KiB
16Elfogadva2/214ms6784 KiB
17Elfogadva2/214ms6864 KiB
18Elfogadva2/214ms6856 KiB
19Elfogadva2/214ms7128 KiB
20Elfogadva2/214ms7108 KiB
21Elfogadva2/214ms7176 KiB
22Elfogadva2/219ms6412 KiB
23Elfogadva4/423ms6372 KiB