Pagini recente » Cod sursa (job #2703980) | Cod sursa (job #2387980) | Cod sursa (job #1034083) | Cod sursa (job #1187393) | Cod sursa (job #2393083)
#include <bits/stdc++.h>
#define NMAX 45010
#define BMAX 1<<16
using namespace std;
int n,m,Q,S,E,idc=1,dp[BMAX][20],id[NMAX],low[NMAX];
vector <int> A[NMAX],st,CB;
bool isP=false;
void dfs(int u){
st.push_back(u);
id[u]=low[u]=idc++;
for(int i=0;i<A[u].size();i++){
if(!id[A[u][i]])dfs(A[u][i]);
low[u]=min(low[u],low[A[u][i]]);
}
if(id[u]==low[u]){
while(1){
int v=st.back();
if(low[u]==1){
CB.push_back(v);
isP|=(v==E);
}
st.pop_back();
if(id[v]==low[u])break;
}
}
}
int main(){
ifstream cin("santa.in");
ofstream cout("santa.out");
cin>>n>>m;
for(int i=0;i<n;i++){
int a,b;
cin>>a>>b;
A[a].push_back(b);
A[b].push_back(a);
}
cin>>Q>>S>>E;
dfs(E);
int l=CB.size();
if(isP){
cout<<l-1<<'\n';
for(int i=l-1;i>0;i--){
cout<<CB[i]<<' ';
}
}else{
cout<<"No chance\n";
}
}