Pagini recente » Cod sursa (job #3032757) | Cod sursa (job #1217573) | Cod sursa (job #2260270) | Cod sursa (job #835204) | Cod sursa (job #2509406)
#include <iostream>
#include <stack>
#include <vector>
#define verticesMax 101024
#define arcsMax 501024
using namespace std;
class Arc {
public:
int from,to,used;
Arc();
Arc(int newFrom,int newTo);
isValid();
validate();
devalidate();
};
Arc::Arc() {
used=0;
}
Arc::Arc(int newFrom,int newTo) {
form=newFrom;
to=newTo;
used=0;
}
char Arc::isValid() {
return !used;
}
void Arc::use() {
used=1;
}
void Arc::unuse() {
used=0;
}
int verticesL,arcsL;
Vector <int> Graph[verticesMax];
int GraphLength[verticesMax];
Arc Arcs[arcsMax];
int sol[arcsMax],solLength;
char read() {
int x,y;
scanf("%d%d",&verticesL,&arcsL);
int grade[verticesMax];
for(i=0;i<arcsL;++i) {
scanf("%d%d",&x,&y);
Arc Arcs[i](x,y);
Graph[x].push(i);
Graph[y].push(i);
++GraphLength[x];
++GraphLength[y];
++grade[x];
++grade[y];
}
for(i=0;i<verticesL;++i) {
if(grade[i]%2||!grade[i]) {
return 0;
}
}
return 1;
}
void fillStack(stack <int>&S,int first) {
int i,topPos,nextPos;
for(;S.top()!=first;) {
topPos=S.top();
for(nextPos=S.;;)
}
}
void solve() {
stack <int> S;
S.push(1);
fillStack(S,1);
}
void display() {
int i;
for(i=0;i<solLength;++i) {
printf("%d ",sol[i]);
}
}
int main()
{
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
if(read())
{
solve();
if(solLength!=arcsL) {
printf("-1");
}
else {
display();
}
}
else {
printf("-1");
}
return 0;
}