Pagini recente » Cod sursa (job #127081) | Cod sursa (job #3261627) | Cod sursa (job #1564199) | Cod sursa (job #343442) | Cod sursa (job #1367080)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
struct muc
{
int p;
int k;
};
muc aux;
vector <muc> gr[100005];
int n,m,viz[500005],d[500005],l;
void dfs(int x)
{
int i;
if(l==m)
for(i=1;i<=m;i++)
g<<d[i]<<" ";
else
for(i=0;i<gr[x].size();i++)
{
if(viz[gr[x][i].k]==0)
{
viz[gr[x][i].k]=1;
l++;
d[l]=gr[x][i].p;
dfs(gr[x][i].p);
d[l]=0;
l--;
}
}
}
int main()
{
int i,j,x,y;
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
aux.p=y;
aux.k=i;
gr[x].push_back(aux);
aux.p=x;
gr[y].push_back(aux);
}
d[1]=1;
l=1;
dfs(1);
int ok=1;
for(i=1;i<=m;i++)
if(viz[i]==0)
ok=-1;
if(ok==-1)
g<<ok;
return 0;
}