152432025-02-17 16:21:45mateKerékpártúra (50 pont)cpp17Időlimit túllépés 20/50490ms2460 KiB
#include <bits/stdc++.h>
using namespace std;

vector <vector <int>> g;
vector <bool> jart;
set <int> ans;
vector <bool> bejart;
int n;

bool bfs(int p, int k){
    jart[p] = 1;
    queue <int> q;
    q.push(p);
    while(!q.empty()){
        int csucs = q.front();
        q.pop();
        if(csucs == k)  return 1;
        jart[csucs] = 1;
        for(int x : g[csucs]){
            if(jart[x]) continue;
            q.push(x);
        }
    }
    return 0;
}





int main() {
    ios::sync_with_stdio(0); cin.tie(0);
	int m,k; cin >> n >> m >> k;
    g.resize(n+1);
    jart.resize(n+1,0);
    bejart.resize(n+1,0);
    int a,b;
    for(int i = 0; i < m; i++){
        cin >> a >> b;
        g[a].push_back(b);
    }
    for(int i = 1; i <= n; i++){
        //if(i == k)  continue;
        jart.assign(n+1,0);
        bejart[i] = bfs(i,k);
        if(bejart[i]){
            for(int x : g[i]){
                ans.insert(x);
            }
            
        } 
    }
    
    cout << ans.size()-1 << '\n';
    for(int x : ans){
        if(x == k)  continue;
        cout << x << ' ';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/50
1Elfogadva0/01ms316 KiB
2Időlimit túllépés0/0479ms820 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms508 KiB
7Elfogadva2/22ms316 KiB
8Elfogadva2/223ms316 KiB
9Elfogadva2/268ms468 KiB
10Elfogadva2/2116ms480 KiB
11Elfogadva2/2310ms316 KiB
12Elfogadva2/2231ms624 KiB
13Időlimit túllépés0/2483ms564 KiB
14Időlimit túllépés0/2479ms800 KiB
15Időlimit túllépés0/3477ms1076 KiB
16Időlimit túllépés0/4474ms1076 KiB
17Időlimit túllépés0/4488ms1332 KiB
18Időlimit túllépés0/3486ms1080 KiB
19Időlimit túllépés0/3488ms1076 KiB
20Időlimit túllépés0/3486ms2108 KiB
21Időlimit túllépés0/3481ms2288 KiB
22Időlimit túllépés0/3490ms2460 KiB