Problem H: You are my brother
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 93 Solved: 40
Description
Little A gets to know a new friend, Little B, recently. One day, they realize that they are family 500 years ago. Now, Little A wants to know whether Little B is his elder, younger or brother.
Input
There are multiple test cases.
For each test case, the first line has a single integer, n (n<=1000). The next n lines have two integers a and b (1<=a,b<=2000) each, indicating b is the father of a. One person has exactly one father, of course. Little A is numbered 1 and Little B is numbered 2.
Proceed to the end of file.
Output
For each test case, if Little B is Little A’s younger, print “You are my younger”. Otherwise, if Little B is Little A’s elder, print “You are my elder”. Otherwise, print “You are my brother”. The output for each test case occupied exactly one line.
Sample Input
Sample Output
#include<stdio.h>
#include<string.h>
int pre[2007],n;
int find(int x)
{
int t=1;
while(x!=pre[x])
{
x=pre[x];
t++;
}
return t;
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
int a,b,i;
memset(pre,0,sizeof(pre));
for(i=1;i<=n;i++)
{
scanf("%d%d",&a,&b);
pre[a]=b;
}
int x=find(1);
int y=find(2);
if(x<y)
printf("You are my younger\n");
else if(x>y)
printf("You are my elder\n");
else printf("You are my brother\n");
}
return 0;
}
本文介绍了一个简单的算法,用于解决两个个体之间的家族关系问题,通过输入一系列父子关系数据,判断两个人物之间的长幼关系。
750

被折叠的 条评论
为什么被折叠?



