时间限制:1.000S 空间限制:32MB
题目描述
小明发现和小宇有共同祖先!现在小明想知道小宇是他的长辈,晚辈,还是兄弟。
输入描述
输入包含多组测试数据。每组首先输入一个整数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
答案
package main
import (
"fmt"
)
var (
helper map[int]int
n int
a int
b int
aLen int
bLen int
)
func main() {
for {
_, err := fmt.Scan(&n)
if err != nil || n == 0 {
break
}
helper := make(map[int]int, n)
for ; n > 0; n-- {
fmt.Scan(&a, &b)
helper[a] = b
}
a, b = 1, 2
for {
if p, has := helper[a]; has {
a = p
aLen++
} else {
break
}
}
for {
if p, has := helper[b]; has {
b = p
bLen++
} else {
break
}
}
if aLen > bLen {
fmt.Println("You are my elder")
} else if aLen < bLen {
fmt.Println("You are my younger")
} else {
fmt.Println("You are my brother")
}
aLen = 0
bLen = 0
}
}