아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

가장 긴 등차 부분수열

면접 대비

시간 제한2초메모리 제한1024 MB

요약
정렬된 수열에서 등차수열을 이루는 가장 긴 부분수열의 길이를 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 배열
정답자
아직 제출이 없습니다

문제

등차수열은 이웃한 두 원소의 차가 항상 같은 오름차순 수열 a1<a2<⋯<ana_1 < a_2 < \dots < a_n이다. 예를 들어 11<21<31<41<5111 < 21 < 31 < 41 < 51은 등차수열이다.

원소가 nn개인 오름차순 수열 aa의 부분수열은 aa에 들어 있는 원소만 골라 만든 오름차순 수열 b1<b2<⋯<bmb_1 < b_2 < \dots < b_m이고, m≤nm \le n이다. 예를 들어 21<41<5121 < 41 < 51, 11<4111 < 41, 11<21<31<41<5111 < 21 < 31 < 41 < 51은 모두 11<21<31<41<5111 < 21 < 31 < 41 < 51의 부분수열이다.

오름차순 수열 c1<c2<⋯<ckc_1 < c_2 < \dots < c_k가 주어진다. cc의 부분수열이면서 등차수열인 것 중 가장 긴 것의 길이를 구하시오. 가장 긴 등차수열은 여러 개일 수 있지만 그 길이는 하나로 정해진다.

원소가 한 개이거나 두 개인 수열도 정의를 만족하므로 답은 항상 2 이상이다.

kk는 10 이상 500 이하이고, cc의 각 원소는 100000보다 작은 양의 정수다.

입력

입력은 두 줄이다. 첫째 줄에 cc의 원소 개수 kk가 주어진다. 둘째 줄에 수열 cc의 원소가 오름차순으로 공백을 사이에 두고 주어진다.

출력

cc의 부분수열인 등차수열 중 가장 긴 것의 길이를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    12
    1 2 4 5 7 8 9 11 13 14 15 16
    
    예상 출력
    6