이등변삼각형 벽

기둥 높이들이 주어질 때, 어떤 2h-1개의 연속한 기둥을 1,2,...,h,...,2,1 모양으로 줄일 수 있는 가장 큰 h를 구한다.

보통5배열완전 탐색누적 합면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

세르지우와 루이스 형제가 나무 큐브로 벽을 쌓았다. 벽은 끝까지 채우지 못해서 기둥마다 높이가 제각각이다.

두 사람은 이제 큐브를 빼내는 놀이를 하기로 했다. 큐브는 각 기둥의 맨 위에서부터만 빼낼 수 있고, 빼낸 큐브를 다른 기둥에 다시 올릴 수는 없다. 마지막에는 완전한 이등변삼각형 하나만 남아야 한다.

높이가 hh인 이등변삼각형은 연속한 기둥 2h12h-1개로 이루어지고, 왼쪽부터 각 기둥의 높이가 정확히 1,2,,h1,h,h1,,2,11, 2, \dots, h-1, h, h-1, \dots, 2, 1이다. 아래 그림은 높이가 1, 2, 3, 4, 5인 이등변삼각형을 차례로 그린 것이다.

삼각형에 쓰이지 않는 기둥은 큐브를 하나도 남기지 않고 모두 빼내야 한다. 벽을 이루는 기둥의 높이가 순서대로 주어질 때, 마지막에 남길 수 있는 삼각형의 최대 높이를 구하는 프로그램을 작성하시오. 기둥이 30개인 첫 번째 그림의 벽에서는 높이가 7인 삼각형까지 남길 수 있다.

입력

첫째 줄에 벽을 이루는 기둥의 개수 NN이 주어진다. 둘째 줄에 각 기둥의 높이 AiA_i가 왼쪽부터 순서대로 NN개 주어진다.

제한

  • 1N500001 \le N \le 50\,000
  • 1AiN1 \le A_i \le N

출력

마지막에 남길 수 있는 삼각형의 최대 높이 HH를 한 줄에 출력한다.