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.
输入:
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.
输出:
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.
题意:每个人都有且只有一个父亲,问A和B的辈分:A>B,elder;A<B,younger;A==B,brother.
开始想着,并查集可以吧? 想想,只是用到了辈分关系,数组就可以了吧
#include<algorithm>
#include<cstring>
using namespace std;
const int N=2005;
int Q[N];
int main()
{
int n;
while(~scanf("%d",&n))
{
memset(Q,0,sizeof(Q));
int a,b,i,n1=0,n2=0;
while(n--)
{
scanf("%d%d",&a,&b);
Q[a]=b;
}
i=1;
while(Q[i]>0)
{
i=Q[i];
n1++;
}
i=2;
while(Q[i]>0)
{
i=Q[i];
n2++;
}
if(n1<n2) printf("You are my younger\n");
else if(n1>n2)printf("You are my elder\n");
else printf("You are my brother\n");
}
return 0;
}