小时候的一笔画。
#include <iostream>
#define clr(x, k) memset((x), (k), sizeof(x))
using namespace std;
const int N = 1010;
int f[N], degree[N];
int find(int x)
{
if (f[x]!=x) f[x] = find(f[x]);
return f[x];
}
int main()
{
int n, m;
while (~scanf("%d", &n) && n)
{
scanf("%d", &m);
clr(degree, 0);
int x, y;
for (x=1;x<=n;++x) f[x] = x;
int num = 1;
bool flag = true;
while (m--)
{
scanf("%d %d", &x, &y);
degree[x]++;
degree[y]++;
x = find(x);
y = find(y);
if (x>y) swap(x, y);
if (x!=y)
{
f[y] = x;
num++;
}
}
if (num!=n) flag = false;
if (flag)
for (x=1;x<=n;++x)
if (degree[x]%2!=0)
{
flag = false;
break;
}
if (flag) printf("1\n");
else printf("0\n");
}
return 0;
}