一家人(family)

題目描述

最近小明交了一個新朋友叫小宇,他們在聊天的時候發現500年前他們居然是一家人!如今小明想知道小宇是他的長輩,晚輩,仍是兄弟。

輸入

輸入包含多組測試數據。每組首先輸入一個整數N(N<=10),接下來N行,每行輸入兩個整數a和b,表示a的父親是b(1<=a,b<=20)。小明的編號爲1,小宇的編號爲2。
輸入數據保證每一個人只有一個父親。

輸出

對於每組輸入,若是小宇是小明的晚輩,則輸出「You are my younger」,若是小宇是小明的長輩,則輸出「You are my elder」,若是是同輩則輸出「You are my brother」。

樣例輸入

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

思路:
  這道題目的數據是a的b關係。(多組數據,這是個坑!)
純模擬。
再按照判斷便可。
若是小宇是小明的晚輩,則輸出「You are my younger」,
若是小宇是小明的長輩,則輸出「You are my elder」,
若是是同輩則輸出「You are my brother」。
  開兩個數組存儲a與b的狀態比較。
也能夠用鏈表向上查找。
代碼:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int a[105];
int main(){
    int n;
    while(cin>>n){
        for(int i=1;i<=100;i++)
            a[i]=i;
        for(int i=1;i<=n;i++){
            int x,y;
            cin>>x>>y;
            a[x]=y;
        }
        int s1=0;
        for(int i=1;i!=a[i];i=a[i])s1++;
        int s2=0;
        for(int i=2;i!=a[i];i=a[i])s2++;
        if(s1>s2)cout<<"You are my elder"<<endl;
        else if(s1==s2)cout<<"You are my brother"<<endl;
        else cout<<"You are my younger"<<endl;
    }
    return 0;
}
 

  

OVER!
相關文章
相關標籤/搜索