롤러코스터

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

롤러코스터의 하이라이트는 내리막을 쭉 내려갔다가 다시 올라오는 순간이다. 롤러코스터 설계자 영창이는 이 하이라이트 구간을 되도록 길게 만들고 싶다.

새로 짓는 비용이 부담스러운 영창이는 철골 기둥만 남은 중고 롤러코스터를 사서 개조하기로 했다. 개조할 구간에는 기둥 NN개가 한 줄로 서 있고, 각 기둥의 높이가 수치로 주어진다. 기둥을 옮기는 비용이 비싸서 기둥은 제거만 하며, 남은 기둥은 원래 순서를 그대로 유지한다.

남은 기둥의 높이를 순서대로 늘어놓았을 때 높이가 먼저 계속 낮아지고 그다음 계속 높아지면 하이라이트 구간이 된다. 매끄러운 경사를 만들어야 하므로 이웃한 두 기둥의 높이는 같을 수 없다. 다시 올라오는 부분은 없어도 되고, 진행 방향은 공사가 끝난 뒤에 정하므로 계속 낮아지기만 하는 모양과 계속 높아지기만 하는 모양을 똑같이 인정한다. 하이라이트 구간을 전혀 만들 수 없으면 가장 높은 기둥 하나만 남긴다.

예를 들어 기둥의 높이가 4 3 5 1 4 2 3이면 높이 5인 세 번째 기둥과 높이 4인 다섯 번째 기둥을 제거해 4 3 1 2 3을 남기는 것이 최선이고, 기둥 5개가 남는다.

최대한 남길 수 있는 기둥의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 개조할 구간의 기둥 개수 NN이 주어진다. NN은 1,000 이하의 자연수이다.

둘째 줄에 기둥 NN개의 높이가 서 있는 순서대로 주어진다. 각 높이는 10,000 이하의 자연수이다.

출력

최대한 남길 수 있는 기둥의 개수를 출력한다.