SPSEQ - Sequences

Tags: dp, lis

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.

Input

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

SPSEQ.cpp