THHV 2025 - DX19 - 11 - Đường đi

Xem dạng PDF

Gửi bài giải

Điểm: 50,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong 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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.