129782025-01-04 12:59:14szabelrKerékpártúra (50 pont)cpp17Accepted 50/50128ms3640 KiB
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector <int> adjf[10001];
    vector <int> adj[10001];
    bool joe[10001]{ 0 };
    int n, m, k,a,b;
    cin >> n >> m >> k;
    for (int i = 1; i <= m; i++) {
        cin >> a >> b;
        adj[a].push_back(b);
        adjf[b].push_back(a);
    }
    vector <int> lista(10001);
    lista[0] = k;
    int l_elso=0, l_utolso=0;
    while (l_elso <= l_utolso) {
        int v = lista[l_elso];
        l_elso++;
        for (int i = 0; i < adjf[v].size(); i++) {
            int sz = adjf[v][i];
            if (joe[sz] == 0) {
                joe[sz] = 1;
                l_utolso++;
                lista[l_utolso] = sz;
            }
        }
    }
    /*for (int i = 1; i <= n; i++) {
        cout << i << " " << joe[i] << endl;
    }*/
    int db = 0;
    int jok[10001]{ 0 };
    bool visited[10001]{ 0 };
    vector <int> lista1(10001);
    lista1[0] = k;
    int l_elso1 = 0, l_utolso1 = 0;
    while (l_elso1 <= l_utolso1) {
        //cout << "Alma" << " ";
        int v = lista1[l_elso1];
        //cout << v;
        l_elso1++;
        for (int i = 0; i < adj[v].size(); i++) {
            int sz = adj[v][i];
            //cout << sz << " ";
            if (joe[sz] == 1 and visited[sz]==0) {
                l_utolso1++;
                visited[sz] = 1;
                lista1[l_utolso1] = sz;
                db++;
                jok[db] = sz;
            }
        }
    }
    //cout << db << endl;
    int dbog = db;
    for (int i = 1; i <= dbog; i++) {
        for (int y = 0; y < adj[jok[i]].size(); y++) {
            int sz = adj[jok[i]][y];
            if (visited[sz] == 0) {
                db++;
                jok[db] = sz;
                visited[sz] = 1;
            }
        }
    }
    cout << db - 1<<endl;
    for (int i = 1; i <= db; i++) {
        if(jok[i]!=k)
            cout << jok[i] << " ";
    }

    

}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms824 KiB
2Accepted0/019ms1592 KiB
3Accepted2/21ms824 KiB
4Accepted2/21ms828 KiB
5Accepted2/21ms824 KiB
6Accepted2/21ms824 KiB
7Accepted2/21ms824 KiB
8Accepted2/23ms824 KiB
9Accepted2/23ms824 KiB
10Accepted2/24ms956 KiB
11Accepted2/24ms1080 KiB
12Accepted2/212ms1080 KiB
13Accepted2/210ms1060 KiB
14Accepted2/220ms1504 KiB
15Accepted3/332ms1848 KiB
16Accepted4/435ms1848 KiB
17Accepted4/450ms2240 KiB
18Accepted3/345ms2084 KiB
19Accepted3/339ms1920 KiB
20Accepted3/3112ms3384 KiB
21Accepted3/3128ms3596 KiB
22Accepted3/3127ms3640 KiB