Có ~ n ~ đứa trẻ, mỗi ngày một đứa trẻ đọc một quyển sách khác nhau. Kết thúc một ngày, đứa trẻ thứ ~ i ~ sẽ đưa quyển sách của mình cho đứa trẻ thứ ~ p_i ~, nếu ~ i=p_i ~ thì xem như đứa trẻ đó tự đưa cho chính mình. Biết rằng tất cả các giá trị ~ p_i ~ là đôi một phân biệt từ 1 đến ~ n ~, hay nói cách khác ~ p_1,p_2,…,p_n ~ là một hoán vị của ~ 1,2,3,…,n ~
Ví dụ ~ n=6 ~ và ~ p={4,6,1,3,5,2} ~ khi kết thúc ngày đầu tiên quyển sách của đứa trẻ thứ nhất sẽ đưa cho đứa trẻ thứ 4, quyển sách của đứa trẻ thứ 2 sẽ đưa cho đứa trẻ thứ 6, quyển sách của đứa trẻ thứ 3 sẽ đưa cho đứa trẻ thứ 1,… Kết thúc ngày thứ 2, quyển sách của đứa trẻ thứ nhất sẽ chuyển qua đứa trẻ thứ 3, quyển sách của đứa trẻ thứ 2 sẽ chuyển qua đứa trẻ thứ 2.
Hãy xác định số ngày ít nhất để quyển sách của đứa trẻ thứ ~ i ~ quay lại chính đứa trẻ thứ ~ i (i=1…n) ~
Dữ liệu vào
Kết quả
Đưa ra dãy số nguyên ~ a_i,a_2,…,a_n ~ trong đó ~ a_i ~ cho biết số ngày ít nhất để đứa trẻ thứ ~ i ~ nhận lại quyển sách ban đầu của mình.
Ràng buộc
Ví dụ:
Input 1
6
4 6 2 1 5 3
Output 1
2 3 3 2 1 3
Code tích cực |
---|
Trong 24h |
|
Trong 7 ngày |
Trong 30 ngày |
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 37787 |