hiho week 50 register

Ended

Participants:436

Verdict:Accepted
Score:100 / 100
Submitted:2015-06-13 23:01:01

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <bits/stdc++.h>
using namespace std;
stack<int>P;
int n,A[1003][1003],d[1003];
void dfs(int u)
{
    int v;
    for(v=1;v<=n;v++)
    if(A[u][v])
    {
        A[u][v]--,A[v][u]--;
        dfs(v);
    }
    P.push(u);
}
int main()
{
    int m,u,v,i=1;
    scanf("%d%d",&n,&m);
    while(m--)scanf("%d%d",&u,&v),A[u][v]++,A[v][u]++,d[u]++,d[v]++;
    for(i=1;i<=n;i++)
    if(d[i]&1)break;
    if(i>n)i=1;
    dfs(i);
    printf("%d",P.top());
    P.pop();
    while(!P.empty())
    {
        printf(" %d",P.top());
        P.pop();
    }
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX