Pagini recente » Cod sursa (job #2731752) | Cod sursa (job #1895429) | Cod sursa (job #1101571) | Cod sursa (job #1382282) | Cod sursa (job #344870)
Cod sursa(job #344870)
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
#define file_in "santa.in"
#define file_out "santa.out"
#define Nmax 45010
#define pb push_back
int N,M;
int a,b;
vector<int> v[Nmax];
int nr,A[Nmax];
int Q,E,S;
int viz[Nmax];
void dfs(int nod)
{
int i;
viz[nod]=1;
for (i=0;i<v[nod].size();++i)
if (!viz[v[nod][i]])
{
nr++;
A[nr]=v[nod][i];
dfs(v[nod][i]);
}
}
int main()
{
int i;
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &N,&M);
while(M--)
{
scanf("%d %d", &a, &b);
v[a].pb(b);
v[b].pb(a);
}
scanf("%d %d %d", &S, &E, &Q);
//primele doua valori vor fi Q si S
//ultima valoare va fi E
A[1]=Q;
A[2]=S;
nr=2;
viz[Q]=1;
viz[S]=1;
dfs(S);
printf("%d\n", nr);
for (i=1;i<=nr;++i)
printf("%d ", A[i]);
fclose(stdin);
fclose(stdout);
return 0;
}