Problem
https://vn.spoj.com/problems/SPSEQ
https://oj.vnoi.info/problem/SPSEQ
W. là 1 dãy các số nguyên dương. Nó có các đặc điểm sau:
- Độ dài của dãy là 1 số lẻ: L = 2*N + 1
- N + 1 số nguyên đầu tiên của dãy tạo thành 1 dãy tăng
- N + 1 số nguyên cuối của dãy tạo thành 1 dãy giảm
- Không có 2 số nguyên nào cạnh nhau trong dãy có giá trị bằng nhau
Ví dụ: 1, 2, 3, 4, 5, 4, 3, 2, 1 là 1 dãy W. độ dài 9. Tuy nhiên, dãy 1, 2, 3, 4, 5, 4, 3, 2, 2 không là 1 dãy W.
Yêu cầu: Trong các dãy con của dãy số cho trước, tìm dãy W. có độ dài dài nhất.
Dòng 1: số nguyên dương N (N <= 100000), độ dài dãy số.
Dòng 2: N số nguyên dương ai (ai <= 10^9).
Output
1 số nguyên dương duy nhất là độ dài dãy W. dài nhất.
Example
Input
10
1 2 3 4 5 4 3 2 1 10
Output
9
Input
19
1 2 3 2 1 2 3 4 3 2 1 5 4 1 2 3 2 2 1
Output
9
Tutorial
Bài này đơn giản chỉ là tìm dãy con tăng dài nhất từ 1 -> i
với mỗi 1 <= i <= n
và dãy con giảm dài nhất tử i -> n
với mỗi 1 <= i <= n
. (thực chất chỉ là duyệt dãy từ n -> 1
tìm dãy tăng dài nhất). Kết quả là
Max(2 * min(F[0][i]-1, F[1][i]-1) + 1)
với mỗi 1 <= i <= n
.
Submission
Nếu bạn thấy bài viết này hay, hãy share bài viết này cho mọi người nhé 😉.
Share this post →