#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <malloc.h>
#define MAX 100
typedef struct graph
{
int v;
struct graph *e;
}graph;
int visited[101];
int bfs[101];
int main() {
int N,M,ui,vi,i,l,c,chld[101]={0},vrtx;
graph *g[MAX],*next;
i=1;
while(i<=N)
{
g
[i
]=(graph
*)malloc(sizeof(graph
)); g[i]->v=i;
g[i]->e=NULL;
i++;
}
i=0;
while(i<M)
{
next=g[ui];
while(next->e!=NULL)
next=next->e;
next
->e
= (graph
*)malloc(sizeof(graph
)); next->e->v=vi;
next->e->e=NULL;
next=g[vi];
while(next->e!=NULL)
next=next->e;
next
->e
= (graph
*)malloc(sizeof(graph
)); next->e->v=ui;
next->e->e=NULL;
i++;
}
i=0;
l=1;
bfs[0]=1;
visited[0]=1;
while(i<N)
{
next = g[bfs[i]];
visited[next->v] = 1;
chld[next->v] = 1;
next=next->e;
while(next!=NULL)
{
if(visited[next->v] == 0)
{
bfs[l++]=next->v;
chld[next->v] =1;
}
next=next->e;
}
i++;
}
i=N-1;
while(i>=0)
{
next = g[bfs[i]];
visited[next->v] = 0;
vrtx = next->v;
next=next->e;
l=0;
while(next!=NULL)
{
if(visited[next->v] == 1)
{
chld[next->v] += chld[vrtx];
l += 1;
}
next=next->e;
}
if(l==0)
chld[vrtx] -= 1;
i--;
}
c=0;
for(i=1;i<=N;i++)
{
if(chld[i] % 2 == 0)
c+=1;
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8bWFsbG9jLmg+CiNkZWZpbmUgTUFYIDEwMAp0eXBlZGVmIHN0cnVjdCBncmFwaAogICAgewogIGludCB2OwogIHN0cnVjdCBncmFwaCAqZTsgIAp9Z3JhcGg7CmludCB2aXNpdGVkWzEwMV07CmludCBiZnNbMTAxXTsKaW50IG1haW4oKSB7CiAgICBpbnQgTixNLHVpLHZpLGksbCxjLGNobGRbMTAxXT17MH0sdnJ0eDsKICAgIGdyYXBoICpnW01BWF0sKm5leHQ7CiAgICBzY2FuZigiJWQlZCIsJk4sJk0pOwogICAgaT0xOwogICAgd2hpbGUoaTw9TikKICAgICAgICB7CiAgICAgICAgZ1tpXT0oZ3JhcGggKiltYWxsb2Moc2l6ZW9mKGdyYXBoKSk7CiAgICAgICAgZ1tpXS0+dj1pOwogICAgICAgIGdbaV0tPmU9TlVMTDsKICAgICAgICBpKys7CiAgICB9CiAgICBpPTA7CiAgICB3aGlsZShpPE0pCiAgICAgICAgewogICAgICAgIHNjYW5mKCIlZCVkIiwmdWksJnZpKTsKICAgICAgICBuZXh0PWdbdWldOwogICAgICAgIHdoaWxlKG5leHQtPmUhPU5VTEwpCiAgICAgICAgICAgIG5leHQ9bmV4dC0+ZTsKICAgICAgICBuZXh0LT5lID0gKGdyYXBoICopbWFsbG9jKHNpemVvZihncmFwaCkpOwogICAgICAgICAgICBuZXh0LT5lLT52PXZpOwogICAgICAgICAgICBuZXh0LT5lLT5lPU5VTEw7CiAgICAgICAgbmV4dD1nW3ZpXTsKICAgICAgICB3aGlsZShuZXh0LT5lIT1OVUxMKQogICAgICAgICAgICBuZXh0PW5leHQtPmU7CiAgICAgICAgbmV4dC0+ZSA9IChncmFwaCAqKW1hbGxvYyhzaXplb2YoZ3JhcGgpKTsKICAgICAgICAgICAgbmV4dC0+ZS0+dj11aTsKICAgICAgICAgICAgbmV4dC0+ZS0+ZT1OVUxMOyAgICAgICAgCiAgICAgICAgaSsrOwogICAgfQogICAgaT0wOwogICAgbD0xOwogICAgYmZzWzBdPTE7CiAgICB2aXNpdGVkWzBdPTE7CiAgICB3aGlsZShpPE4pCiAgICAgICAgewogICAgICAgICAgICBuZXh0ID0gZ1tiZnNbaV1dOwogICAgICAgICAgICB2aXNpdGVkW25leHQtPnZdID0gMTsKICAgICAgICAgICAgY2hsZFtuZXh0LT52XSA9IDE7CiAgICAgICAgICAgICAgICBuZXh0PW5leHQtPmU7ICAgICAgICAKICAgICAgICAgICAgd2hpbGUobmV4dCE9TlVMTCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHZpc2l0ZWRbbmV4dC0+dl0gPT0gMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGJmc1tsKytdPW5leHQtPnY7CiAgICAgICAgICAgICAgICAgICBjaGxkW25leHQtPnZdID0xOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbmV4dD1uZXh0LT5lOyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgfQogICAgICAgIGkrKzsKICAgIH0KICAgIGk9Ti0xOwogICAgd2hpbGUoaT49MCkKICAgICAgICB7CiAgICAgICAgICAgIG5leHQgPSBnW2Jmc1tpXV07CiAgICAgICAgICAgIHZpc2l0ZWRbbmV4dC0+dl0gPSAwOwogICAgICAgICAgICB2cnR4ID0gbmV4dC0+djsKICAgICAgICAgICAgbmV4dD1uZXh0LT5lOyAKICAgICAgICBsPTA7CiAgICAgICAgICAgIHdoaWxlKG5leHQhPU5VTEwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZih2aXNpdGVkW25leHQtPnZdID09IDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICBjaGxkW25leHQtPnZdICs9IGNobGRbdnJ0eF07ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgbCArPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbmV4dD1uZXh0LT5lOyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgfQogICAgICAgIGlmKGw9PTApCiAgICAgICAgICAgIGNobGRbdnJ0eF0gLT0gMTsKICAgICAgICBpLS07CiAgICB9CiAgICBjPTA7CiAgICBmb3IoaT0xO2k8PU47aSsrKQogICAgICAgIHsKICAgICAgICBpZihjaGxkW2ldICUgMiA9PSAwKQogICAgICAgICAgICBjKz0xOyAgCiAgICB9CiAgICBwcmludGYoIiVkXG4iLGMpOwogICAgcmV0dXJuIDA7Cn0K