Contents
Problem
Solution
注意各層關係,0 級時是 parent(child)、1 級時 有 grand、再來才是 great …
用 node[N]
來存各個人的祖先,node[x] = x 的祖先 (最近的)
然後在比較兩人時,分別存下那兩人祖先一直往上的順序(直到源頭),一邊比較是不是直系血親(在同一條上),又或是 sibling(同個家長、0 級) or cousin。Pair getRelation(int first,int second)
回傳兩人有關的祖先順位。
最後在依相差的順位來做輸出的格式。
直接看 code 可以比較好理解。
Code
1 |
|