HNUSTOJ-1257 You are my brother
1257: You are my brother
时间限制: 1 Sec 内存限制: 128 MB提交: 39 解决: 15
[提交][状态][讨论版]
题目描述
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.
样例输入
5
1 3
2 4
3 5
4 6
5 6
6
1 3
2 4
3 5
4 6
5 7
6 7
样例输出
You are my elder
You are my brother
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int pre[2005]; void Solve(){ int cnta = 0, cntb = 0, a = 1, b = 2; while(pre[a]){ cnta += 1; a = pre[a]; } while(pre[b]){ cntb += 1; b = pre[b]; } if(cnta == cntb) printf("You are my brother\n"); else printf("%s\n", cnta < cntb?"You are my younger":"You are my elder"); } int main(){ int n; while(scanf("%d", &n) == 1){ int a, b; memset(pre, 0, sizeof(pre)); for(int i = 0; i < n; i++){ scanf("%d %d", &a, &b); pre[a] = b; } Solve(); } }