Tổ tiên chung thấp nhất (LCA)
Nộp bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Go, Java, Kotlin, Pascal, Python, Scratch
Một công ty có nhân viên, đánh số từ đến . Nhân viên số là tổng giám đốc. Mỗi nhân viên từ đến có đúng một người quản lý trực tiếp (với ).
Trả lời truy vấn: với mỗi truy vấn , hãy tìm người quản lý chung thấp nhất (LCA) của hai nhân viên và — tức là người quản lý chung ở cấp cao nhất trong hệ thống mà vẫn là cấp trên của cả hai.
Dữ liệu vào
Dòng đầu chứa hai số nguyên và .
Dòng thứ hai chứa số nguyên : người quản lý trực tiếp của mỗi nhân viên.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và .
Dữ liệu ra
Với mỗi truy vấn, in ra người quản lý chung thấp nhất của và .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 3 1 1 3 3 4 5 2 5 1 4 |
3 1 1 |
LCA(4,5) = 3 (cả hai đều dưới nhân viên 3). LCA(2,5) = 1 (tổng giám đốc). LCA(1,4) = 1 (1 là tổ tiên của 4). |
| 3 1 1 1 2 3 |
1 | Cả 2 và 3 đều trực thuộc 1. |
Bình luận