CSES - Distinct Values Splits | Chia mảng theo giá trị phân biệt
Xem PDF
Điểm:
1600 (p)
Thời gian:
1.0s
Bộ nhớ:
512M
Input:
bàn phím
Output:
màn hình
Bạn được cho một mảng gồm \(n\) số nguyên. Nhiệm vụ của bạn là đếm số cách chia mảng thành các đoạn liên tiếp sao cho mọi đoạn đều chỉ gồm các giá trị phân biệt.
Input
Dòng đầu tiên chứa một số nguyên \(n\): kích thước của mảng.
Dòng tiếp theo chứa \(n\) số nguyên \(x_1, x_2,\dots, x_n\): các phần tử của mảng.
Output
In ra một số nguyên: đáp án của bài toán lấy modulo \(10^9 + 7\).
Constraints
-
\(1 \le n \le 2 \cdot 10^5\)
-
\(1 \le x_i \le 10^9\)
Example
Test 1
Input
4
1 2 1 3
Output
6
Explanation
Có sáu cách chia hợp lệ:
-
\([1], [2], [1], [3]\)
-
\([1], [2], [1, 3]\)
-
\([1], [2, 1], [3]\)
-
\([1], [2, 1, 3]\)
-
\([1, 2], [1], [3]\)
-
\([1, 2], [1, 3]\)
Bình luận