천상낙원

큰 것이 더 똑똑하다? (Is Bigger Smarter?)

ACM 퀴즈
어떤 사람은 코끼리가 더 똑똑하다고 생각한다. 그런 생각이 틀렸다는 것을 증명하기 위해, 일련의 코끼리들을 분석해서 체중은 증가하는 순서로, IQ는 감소하는 순서로 된 가장 긴 순서열을 뽑아보자.

입력
한 줄에 한 마리씩, 여러 코끼리에 대한 정보가 입력된다. 파일 종료문자가 입력되면 입력이 끝난다. 각 코끼리에 대한 정보는 한 쌍의 정수로 입력되는데, 첫번째 정수는 체중을 킬로그램 단위로 나타낸 것이고, 두번째 정수는 IQ에 100을 곱한 값이다. 두 정수는 모두 1이상 1000이하다. 최대 1000마리의 코끼리에 대한 정보가 입력될 수 있다. 체중이 같은 코끼리가 두 마리 이상 있을 수 있으며, IQ가 같은 코끼리가 두 마리 이상 있을 수도 있다. 그리고 체중과 IQ가 모두 똑같을 수도 있다.

출력
첫째 줄에는 찾아낸 코끼리 순서열의 길이를 나타내는 정수 n을 출력한다. 그 밑으로는 n줄에 걸쳐서 각 코끼리를 찾아내는 양의 정수를 하나씩 출력한다. i번째 데이터 행으로 입력된 숫자들을 W[i], S[i]라고 표기해보자. 찾아낸 n마리의 코끼리의 순서열이 a[1], a[2], ..., a[n]이라면 다음과 같은 관계가 성립해야 한다.
W[a[1]] < W[a[2]] < ... < W[a[n]] 이고, S[a[1]] < S[a[2]] < ... < S[a[n]]
이러 관계가 만족되면서 n값은 최대한 큰 값이어야 한다. 모든 부등호에는 등호는 포함되지 않는다. 즉 체중은 반드시 증가해야 하며 (같으면 안됨), IQ는 감소해야 한다(IQ도 같으면 안됨).
조건이 맞으면 아무 답이나 출력해도 된다.

입력 예
6008 1300
6000 2100
500 2000
1000 4000
1100 3000
6000 2000
8000 1400
6000 1200
2000 1900

출력 예
4
4
5
9
7

'ACM 퀴즈' 카테고리의 다른 글

체스판 위의 개미 (Ant on a Chessboard)  (0) 2006.03.26
주근깨 (Freckles)  (0) 2006.03.04
두 색으로 칠하기 (Bicoloring)  (0) 2006.02.22