应该是目前最少的代码了。(喜欢偷懒嘿嘿嘿)
#include <stdio.h>
int main() {
int a, b;int Case=0;
while(1) {
Case++; int rudu[10001]={0};int point[10001]={0};int num=0;int root=0;
while (scanf("%d %d", &a, &b) != EOF) {
if (a == 0 && b == 0) break;
if (a == -1 && b == -1)return 0;
rudu[b]++;num++;point[a]++;point[b]++;
}
if(num==0){
printf("Case %d is a tree.\n",Case);
continue;
}
for(int i=1;i<=10000;i++){
if(point[i]!=0&&rudu[i]==0)root++;
else if(point[i]!=0&&rudu[i]>1){
printf("Case %d is not a tree.\n",Case);
root=100;
break;
}
}
if(root==1)printf("Case %d is a tree.\n",Case);
else if(root==100) continue;
else printf("Case %d is not a tree.\n",Case);
}
return 0;
}



京公网安备 11010502036488号