217632026-01-13 19:55:23szjKerékpártúra (50 pont)cpp17Elfogadva 50/50135ms3660 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    //ifstream cin("f.txt");
    int i, n, m, k, a, b;
    cin >> n >> m >> k;
    k--;
    vector<int>vec;
    vector<vector<int>>el(n);
    vector<vector<int>>vissza(n);
    bool volt[n]={}, volt2[n]={};
    for(i=0; i<m; i++)
    {
        cin >> a >> b;
        el[a-1].push_back(b-1);
        vissza[b-1].push_back(a-1);
    }
    queue<int> q;
    q.push(k);
    volt[k]=1;
    while(!q.empty())
    {
        a=q.front();
        q.pop();
        for(auto i:vissza[a])
        {

            if(!volt[i])
            {
                q.push(i);
                volt[i]=1;
            }
        }
    }
    //for(i=0; i<n; i++)cout << volt[i] << " ";
    q.push(k);
    volt[k]=0;
    volt2[k]=1;
    while(!q.empty())
    {
        a=q.front();
        q.pop();
        for(auto i:el[a])
        {
            if(!volt2[i])vec.push_back(i+1);
            if(volt[i] && !volt2[i])q.push(i);
            volt2[i]=1;
        }
    }
    cout << vec.size()<<endl;
    for(auto i:vec)cout << i << " ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/020ms1332 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva2/23ms316 KiB
10Elfogadva2/24ms316 KiB
11Elfogadva2/24ms316 KiB
12Elfogadva2/212ms620 KiB
13Elfogadva2/210ms564 KiB
14Elfogadva2/220ms972 KiB
15Elfogadva3/335ms1696 KiB
16Elfogadva4/439ms1856 KiB
17Elfogadva4/454ms2088 KiB
18Elfogadva3/348ms2028 KiB
19Elfogadva3/341ms1792 KiB
20Elfogadva3/3120ms3124 KiB
21Elfogadva3/3133ms3380 KiB
22Elfogadva3/3135ms3660 KiB