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
");
    else printf("%s
", 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();
    }
}
 
原文地址:https://www.cnblogs.com/Pretty9/p/7406773.html