Pagini recente » Cod sursa (job #13434) | Cod sursa (job #614666) | Cod sursa (job #2999701) | Cod sursa (job #700688) | Cod sursa (job #3268705)
#include <bits/stdc++.h>
#define DIM 100000
#define int long long
#define pii pair<int,int>
using namespace std;
//ifstream f("ciclueuler.in");
//ofstream g("ciclueulert.out");
ifstream f("filesmodel.in");
ofstream g("filesmodel.out");
int n,m;
int x,y;
vector<pii> L[DIM+5];
int D[DIM+5];
int k;
int s[5*DIM+5];
bool u[5*DIM+5];
int sol[5*DIM+5];
int solk = 0;
signed main(){
f>>n>>m;
for(int i=1;i<=m;i++){
f>>x>>y;
L[x].push_back({y,i});
L[y].push_back({x,i});
u[i] = 1;
D[x]++;D[y]++;
}
for(int i=1;i<=n;i++){
if(D[x]%2 == 1){
g<<-1;
return 0;
}
}
k = 1;
s[k] = 1;
while(k>0){
int nod = s[k];
if(D[nod] == 0){
sol[++solk] = nod;
k--;
}else{
while(u[L[nod][L[nod].size()-1].second] == 0){
L[nod].pop_back();
}
pii vec = L[nod][L[nod].size()-1];
u[vec.second] = 0;
D[nod]--;D[vec.first]--;
s[++k] = vec.first;
}
}
for(int i=1;i<solk;i++){
g<<sol[i]<<" ";
}
return 0;
}