閱讀868 返回首頁    go 阿裏雲 go 技術社區[雲棲]


1053: You are my brother

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 76  Solved: 12
[Submit][Status][Web Board]

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

5
1 3
2 4
3 5
4 6
5 6
6
1 3
2 4
3 5
4 6
5 7
6 7

Sample Output

You are my elder
You are my brother

這個是找代的問題,
比如,對於第二組數據,
1的父親是3,再找3的父親是5,再找5的父親是7,共3代。
同理,2的父親是4,4的父親是6,6的父親是7,共3代,
因此1和2是兄弟!
是不是挺簡單的?嗬嗬!下麵看代碼吧!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
 
using namespace std;
#define MAX_LEN 2002
 
int main()
{
    int a=0, b=0;
    int n=0, count;
    int arr[MAX_LEN];
    int cnta, cntb;
    int i, j;
 
    //for (i = 0; i < MAX_LEN; i++)
      //  arr[i] = 0;
 
    while (cin >> n)
    {
        for (i = 0; i < MAX_LEN; i++)
          arr[i] = 0;
 
        count = 0;
        while (count < n)
        {
            cin >> a >> b;
            //if (a == b)
             //  break;
            arr[a] = b;
            count++;
        }
 
        //*************************
        cnta = 0;
        cntb = 0;
         i = 1;
        while (arr[i] > 0 )
        {
            cnta ++;
            i = arr[i];
        }
 
        i = 2;
        while (arr[i] > 0 )
        {
            cntb ++;
            i = arr[i];
        }
 
        if (cnta == cntb)
        {
            cout << "You are my brother" << endl;
        }
        else if (cnta > cntb)
        {
            cout << "You are my elder" << endl;
        }
        else if (cnta < cntb)
            cout << "You are my younger" << endl;
 
    }
    return 0;
}
 
/**************************************************************
    Problem: 1053
    User: 1006440533
    Language: C++
    Result: Accepted
    Time:100 ms
    Memory:1272 kb
****************************************************************/


最後更新:2017-04-02 15:14:59

  上一篇:go 1052: Dinner
  下一篇:go 1060: NEW RDSP MODE I