143212025-01-10 15:06:48Tibi23Kerékpártúra (50 pont)cpp17Elfogadva 50/5075ms3720 KiB
#include <iostream>
#include <vector>
#include <map>

using namespace std;

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

    int n, m, k;
    cin >> n >> m >>k;
    vector<vector<int>>hova(n);
    vector<vector<int>>honnan(n);
    map<int, bool> valasz;
    bool lattuk[n];
    for(int i=0;i<n;i++){
        lattuk[i]=false;
    }

    k--;
    lattuk[k]=true;
    int u, v;
    for(int i=0;i<m;i++){
        cin >> u >> v;
        u--;
        v--;
        hova[u].push_back(v);
        honnan[v].push_back(u);

    }

    vector<int> q;
    q.push_back(k);
    int si = 0;
    while(si < q.size()){
        for(int i=0;i<honnan[q[si]].size();i++){
            if(lattuk[honnan[q[si]][i]]==false){
                lattuk[honnan[q[si]][i]]=true;
                q.push_back(honnan[q[si]][i]);
            }
        }
        si++;
    }

    for(int i=0;i<q.size();i++){
        for(int j=0;j<hova[q[i]].size();j++){
            valasz[hova[q[i]][j]+1]=true;
        }
    }

    valasz.erase(k+1);
    cout << valasz.size()<<endl;

    for(auto x: valasz){
        cout<<x.first<<" ";

    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/09ms1560 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva2/22ms444 KiB
10Elfogadva2/22ms316 KiB
11Elfogadva2/23ms568 KiB
12Elfogadva2/26ms724 KiB
13Elfogadva2/26ms564 KiB
14Elfogadva2/29ms792 KiB
15Elfogadva3/318ms1964 KiB
16Elfogadva4/420ms2132 KiB
17Elfogadva4/429ms2552 KiB
18Elfogadva3/328ms2472 KiB
19Elfogadva3/326ms2264 KiB
20Elfogadva3/356ms3124 KiB
21Elfogadva3/371ms3636 KiB
22Elfogadva3/375ms3720 KiB