Pagini recente » Cod sursa (job #1054717) | Cod sursa (job #2735371) | Cod sursa (job #3189925) | Cod sursa (job #457153) | Cod sursa (job #937957)
Cod sursa(job #937957)
#include <fstream>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
#include <vector>
#define LE 100666
#define x first
#define y second
#define mp make_pair
#define pb push_back
bool viz[LE];
vector<pair<int,int> > H[LE];
int i;
int result[LE*4],k,n,m,xx,yy;
bool okz;
void dfs(int nod)
{
int N=H[nod].size();
for(int i=0;i<N;++i)
if (viz[H[nod][i].y]==false)
{
viz[H[nod][i].y]=true;
int dest=H[nod][i].x;
dfs(dest);
}
result[++k]=nod;
}
int main()
{
f>>n>>m;
for(i=1;i<=m;++i)
{
f>>xx>>yy;
H[xx].pb(mp(yy,i));
H[yy].pb(mp(xx,i));
}
dfs(1);
for(i=1;i<=m;++i)
if (viz[i]==false)
{
g<<-1;
okz=true;
break;
}
for(i=1;okz==false&&i<=m;++i)
g<<result[i]<<" ";
g<<'\n';
f.close();
g.close();
return 0;
}