DHBB 2026 - DX27 - 11 - Dãy tăng kép

Xem dạng PDF

Gửi bài giải

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

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

Dãy con của một dãy là dãy thu được bằng cách xóa đi một số phần tử của dãy ban đầu (có thể không xóa phần tử nào) và giữ nguyên thứ tự của các phần tử còn lại.

Một dãy số được gọi là dãy tăng kép nếu có thể tách nó ra thành hai dãy con khác rỗng, sao cho mỗi phần tử của dãy ban đầu thuộc vào đúng một trong hai dãy con đó, và các phần tử trong cùng một dãy con thì tăng nghiêm ngặt.

Cho dãy số nguyên ~a~ có ~n~ phần tử, hãy đếm số dãy con của ~a~ là dãy tăng kép.

Input

  • Dòng đầu tiên gồm số nguyên ~n~.

  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \dots, a_n~ ~(1 \le a_i \le n)~.

Output

In ra số lượng dãy tăng kép là dãy con của ~a~, sau khi chia lấy dư cho ~10^9+7~.

Scoring

Subtask Điểm Ràng buộc
1 ~20\%~ ~n \le 20~.
2 ~20\%~ ~n \le 200~.
3 ~25\%~ ~n \le 2000~ và ~a_i \le 200~.
4 ~35\%~ ~n \le 2000~.

Sample Input 1

4
3 3 4 2

Sample Output 1

9

Notes

Có ~9~ dãy con của dãy đã cho là dãy tăng kép: ~(3, 3)~, ~(3, 4)~, ~(3, 3, 4)~, ~(3, 4, 2)~, ~(3,2)~, ~(3, 4)~, ~(3, 2)~, ~(3, 4, 2)~, ~(4, 2)~.


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.