#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
#define MAXN 100010
int fa[MAXN];
bool vis[MAXN];
bool flag = 1;
int findfa( int x)
{
if(fa[x] == -1) return x;
return fa[x] = findfa(fa[x]);
}
void unit( int x, int y)
{
if(y != findfa(y))
{
flag = 0;
return ;
}
int fax = findfa(x);
int fay = findfa(y);
if(fax == fay)
{
flag = 0;
return ;
}
fa[fay] = fax;
}
int main()
{
int a, b;
int minn, maxn;
while(scanf("%d %d",&a, &b) != EOF)
{
memset(fa, -1, sizeof(fa));
memset(vis, 0, sizeof(vis));
if(a == -1 && b == -1) break;
flag = 1;
int cnt = 0;
vis[a] = vis[b] = 1;
minn=min(a,b);
maxn=max(a,b);
if(a == 0 && b == 0)
{
printf("Yes\n");
continue;
}
if(a == b)
flag = 0;
unit(a, b);
while(1)
{
//cout<<flag<<endl;
scanf("%d %d",&a, &b);
if(a == b && a == 0)
break;
else if(a == b)
flag = 0;
unit(a, b);
vis[a] = vis[b] = 1;
minn=min(minn,min(a,b));
maxn=max(maxn,max(a,b));
}
int res = 0;
for(int i = minn; i <= maxn; i++)
{
if(vis[i] && findfa(i) == i)
res++;
if(res > 1)
{
flag = 0;
break;
}
}
if(!flag)
printf ("No\n");
else
printf ("Yes\n");
}
return 0;
}
小希的迷宫
最新推荐文章于 2017-11-11 11:26:41 发布