주어진 순서의 카드 중에서 순서를 유지하며 고를 수 있는 가장 긴 증가 수열의 길이를 구합니다.
보통4동적 계획법이분 탐색면접 대비아직 제출이 없습니다시간 제한1초메모리 제한256 MB민균이는 준민이를 놀리는 일에 재미를 붙였다. 오늘은 정수가 하나씩 적힌 카드 N장을 준비해 정해진 순서대로 준민이에게 보여준다. 준민이는 카드가 나온 순서를 지키면서 원하는 만큼 골라 민균이에게 제시한다. 제시한 카드의 수열이 순증가가 아니면 준민이는 바보라고 놀림받는다. 여기서 순증가란 앞의 값이 바로 뒤의 값보다 항상 작다는 뜻이다. 민균이가 보여준 카드가 4,9,10,9일 때 준민이가 4,9를 고르면 놀림받지 않지만 4,10,9나 9,9를 제시하면 놀림받는다.
준민이가 한 번도 놀림받지 않자 화가 난 민균이는 조건을 하나 더 붙였다. 이제 준민이가 제시하는 수열은 순증가이면서 원소의 개수가 가장 많아야 한다. 카드가 8,9,1,2,10일 때 8,9,10이나 1,2,10을 고르면 놀림받지 않지만 8,9나 1,2를 제시하면 놀림받는다.
당황한 준민이는 우선 제시할 수 있는 수열의 원소가 최대 몇 개인지부터 구해보기로 했다. 8,9,1,2,10에서는 그 값이 3이다. 준민이를 대신해 이 값을 구하는 프로그램을 작성하시오.
첫째 줄에 민균이가 보여준 카드의 개수 N (1≤N≤1000)이 주어진다.
둘째 줄에 카드에 적힌 정수 N개가 보여주는 순서대로 공백으로 구분되어 주어진다. 각 정수는 1 이상 100,000,000 이하의 자연수이다.
준민이가 제시할 수 있는 수열의 원소의 최대 개수를 첫째 줄에 출력한다.