THHV 2025 - DX19 - 11 - Đường đi
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Cho dãy số độ dài ~n~ là ~A[0], A[1], \dots, A[n-1]~ các giá trị thuộc đoạn ~[-1, n-1]~ với ý nghĩa nếu ~A[i] \ne -1~ thì có con đường ~1~ chiều nối từ ~i~ tới ~A[i]~, ngược lại ~A[i]~ là điểm đích. Bạn xuất phát từ giá trị ~0~, bạn được thay đổi không quá ~1~ giá trị trong dãy số, hãy xác định độ dài hành trình dài nhất có thể.
Chẳng hạn với dãy số ~10~ phần tử ~A[0] = 2, A[1] = 5, A[2] = 4, A[3] = 4~, ~A[4] = -1, A[5] = 1, A[6] = -1, A[7] = 3, A[8] = 0, A[9] = 8~, nếu không thay đổi gì hành trình từ ~0~ có độ dài ~3~. Một số kết quả về thay đổi giá trị giá trị hành trình:
Nếu ~A[4] = 6~ thì hành trình từ ~0~ độ dài là ~4~.
Nếu ~A[0] = 7~ thì hành trình từ ~0~ độ dài là ~4~.
Nếu ~A[0] = 9~ thì hành trình từ ~0~ không có điểm đích.
Nếu ~A[2] = 7~ thì hành trình từ ~0~ độ dài là ~5~.
Input
Dòng đầu chứa số nguyên ~n~ là kích thước của dãy;
Dòng thứ hai chứa ~n~ số nguyên ~A[0], A[1], \dots, A[n-1]~ ~(-1 \le A[i] \le n-1)~.
Output
Gồm ~1~ số nguyên duy nhất là độ dài hành trình tối đa.
Scoring
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~20\%~ | ~1 < n \le 20~ |
| 2 | ~20\%~ | ~20 < n \le 3000~, đáp số không quá ~100~ |
| 3 | ~20\%~ | ~20 < n \le 3000~ |
| 4 | ~40\%~ | ~3000 < n \le 100000~ |
Sample Input 1
10
2 5 4 4 -1 1 -1 3 0 8
Sample Output 1
5
Bình luận