Pagini recente » Cod sursa (job #147511) | Cod sursa (job #1832275) | Cod sursa (job #2480016) | Cod sursa (job #2364638) | Cod sursa (job #914844)
Cod sursa(job #914844)
#include<stdio.h>
#include<vector>
using namespace std;
FILE *f = fopen("ciclueuler.in","r");
FILE *g = fopen("ciclueuler.out","w");
#define MaxN 100100
#define MaxM 500100
int N,M;
vector<pair<int,int> > A[MaxN];
int SolV[MaxM];
int viz[MaxM];
void citire(void)
{
int a,b;
fscanf(f,"%d %d",&N,&M);
for(int i=1;i<=M;i++)
{
fscanf(f,"%d %d",&a,&b);
A[a].push_back(make_pair(b,i));
A[b].push_back(make_pair(a,i));
}
}
void euler(int nod)
{
for(int i=0;i<A[nod].size();i++)
if(!viz[A[nod][i].second])
{
viz[A[nod][i].second] = 1;
euler(A[nod][i].first);
}
SolV[++SolV[0]] = nod;
}
int main()
{
citire();
euler(1);
for(int i=1;i<SolV[0];i++)
fprintf(g,"%d ",SolV[i]);
}