255002026-02-20 12:26:49abcdElfogáscpp17Elfogadva 50/5056ms3380 KiB
#include <bits/stdc++.h>
using namespace std;

const int maxn=20001;
vector<int> adj[maxn];

int tin[maxn],low[maxn],par[maxn],timer=1;
vector<int> ans;
int dest,sep;

void dfs(int v,int p){
    par[v]=p;
    tin[v]=low[v]=timer++;
    for(int to:adj[v]){
        if(to==p)continue;
        if(tin[to])low[v]=min(low[v],tin[to]);
        else{
            dfs(to,v);
            low[v]=min(low[v],low[to]);
            if(to==sep&&low[to]<tin[v])sep=v;
        }
    }
}

void dfs2(int v){
    ans.push_back(v);
    for(int to:adj[v]){
        if(par[to]==v){
            dfs2(to);
        }
    }
}

int main(){
    int n,m,u;cin>>n>>m>>u>>dest;
    for(int i=0;i<m;i++){
        int a,b;cin>>a>>b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    sep=dest;
    dfs(u,-1);
    dfs2(sep);
    cout<<ans.size()<<'\n';
    for(int x:ans)cout<<x<<' ';cout<<'\n';
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/02ms820 KiB
2Elfogadva0/08ms1332 KiB
3Elfogadva2/21ms1012 KiB
4Elfogadva2/22ms820 KiB
5Elfogadva2/22ms820 KiB
6Elfogadva2/22ms820 KiB
7Elfogadva3/32ms820 KiB
8Elfogadva3/32ms896 KiB
9Elfogadva3/34ms1044 KiB
10Elfogadva3/34ms836 KiB
11Elfogadva3/37ms1232 KiB
12Elfogadva3/38ms1332 KiB
13Elfogadva3/38ms1252 KiB
14Elfogadva3/39ms1288 KiB
15Elfogadva3/39ms1588 KiB
16Elfogadva3/339ms2232 KiB
17Elfogadva3/341ms2292 KiB
18Elfogadva3/341ms2424 KiB
19Elfogadva3/341ms2388 KiB
20Elfogadva3/356ms3380 KiB