86902024-01-25 12:15:03antiKerékpártúra (50 pont)cpp17Hibás válasz 0/5032ms64932 KiB
#include <iostream>
#include <queue>

using namespace std;

int main()
{
    int n, m, start;
    cin >> n >> m >> start;
    start--;
    int M[n][n], IM[n][n];
    for(int i=0; i<m; i++){
        int U, V;
        cin >> U >> V;
        M[U-1][V-1] = 1;
        IM[V-1][U-1] = 1;
    }
    queue<int> q;
    int v[n]={0};

    q.push(start);
    v[start]=1;
    int x;
    while (!q.empty())
    {
        x=q.front();
        q.pop();
        for(int y=0; y<n; y++)
        {
            if (IM[x][y]==1 and v[y]==0)
            {
                q.push(y);
                v[y]=1;
            }
        }
    }
    for(int i=0; i<n; i++){
        cout << v[i] << " ";
    }
    cout << endl;
    int meg[n];
    int h=0;
    for(int i=0; i<n; i++){
        if(v[i] == 1){
            meg[h] = i;
            h++;
        }
    }
    for(int i=0; i<h; i++){
        for(int j=0; j<n; j++){
            if(M[meg[i]][j] == 1){
                v[j] = 1;
            }
        }
    }
    v[start] = 0;
    int hany=0;
    for(int i=0; i<n; i++){
        if(v[i] == 1){
            hany++;
        }
    }
    cout << hany << endl;
    for(int i=0; i<n; i++){
        if(v[i] == 1){
            cout << i+1 << " ";
        }
    }
    cout << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/03ms1812 KiB
2Futási hiba0/032ms64932 KiB
3Hibás válasz0/23ms2164 KiB
4Hibás válasz0/23ms2400 KiB
5Hibás válasz0/23ms2648 KiB
6Hibás válasz0/23ms2720 KiB
7Hibás válasz0/23ms2756 KiB
8Hibás válasz0/24ms3004 KiB
9Hibás válasz0/24ms3456 KiB
10Hibás válasz0/24ms4484 KiB
11Hibás válasz0/210ms13220 KiB
12Hibás válasz0/218ms15916 KiB
13Hibás válasz0/219ms19064 KiB
14Hibás válasz0/230ms19424 KiB
15Futási hiba0/326ms63072 KiB
16Futási hiba0/426ms63044 KiB
17Futási hiba0/430ms62952 KiB
18Futási hiba0/328ms62920 KiB
19Futási hiba0/326ms62896 KiB
20Futási hiba0/326ms62716 KiB
21Futási hiba0/329ms62692 KiB
22Futási hiba0/329ms62452 KiB