Pagini recente » Cod sursa (job #1157805) | Cod sursa (job #2503959) | Cod sursa (job #2527369) | Cod sursa (job #601656) | Cod sursa (job #2207155)
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int N,M;
struct Nod
{
vector <int> Ad;
} Graf[100002];
int grad[100003];
void Read()
{
fin>>N>>M;
int a,b;
for(int i=1; i<=M; ++i)
{
fin>>a>>b;
Graf[a].Ad.push_back(b);
Graf[b].Ad.push_back(a);
++grad[a];
++grad[b];
}
fout<<'1';
fout.close();
fin.close();
}
void Do()
{
for(int i=1; i<=N; ++i)
if(grad[i]%2)
{
fout<<"-1"<<'\n';
return;
}
int start=1;
int curent=1;
int next;
bool gasit;
grad[N+1]=-1;
gasit=1;
while(gasit)
{
gasit=0;
if(Graf[curent].Ad.empty()) break;
for(int i=0; i<Graf[curent].Ad.size(); ++i)
if(grad[Graf[curent].Ad[i]]>1 && Graf[curent].Ad[i]!=-1)
{
gasit=1;
next=Graf[curent].Ad[i];
Graf[curent].Ad[i]=-1;
--grad[next];
break;
}
if(!gasit)
for(int i=0; i<Graf[curent].Ad.size(); ++i)
if(Graf[curent].Ad[i]!=-1)
{
next=Graf[curent].Ad[i];
Graf[curent].Ad[i]=-1;
--grad[next];
break;
}
--grad[curent];
//fout<<curent<<' '<<next<<'\n';
fout<<curent<<' ';
curent=next;
}
}
int main()
{
Read();
// Do();
return 0;
}