주가
시간 제한2초메모리 제한128 MB
각 테스트 케이스에서 가장 낮은 k1개 가격과 가장 높은 k2개 가격이 나타난 날짜를 각각 오름차순과 내림차순으로 출력한다. 동점일 때의 규칙도 지켜야 한다.
문제
싸게 사서 비싸게 판다. 주식 시장에서 이익을 내려면 이렇게 해야 한다(여기서 공매도는 고려하지 않는다). 물론 미래의 주가는 아무도 알 수 없으므로, 언제 사고팔아야 하는지, 반복 매매로 얼마나 이익을 낼 수 있는지 정확히 알기는 어렵다.
하지만 지난 일 동안의 주가 기록이 주어진다면, 낼 수 있었던 최대 이익은 분명히 계산할 수 있다. 이 문제에서는 대신, 가장 낮은 개의 가격과 가장 높은 개의 가격이 나타난 날을 찾는 데 관심이 있다.
입력
입력은 여러 개의 테스트 케이스로 이루어진다.
각 케이스의 첫 줄에는 세 정수 , , 가 주어진다 (, , ).
다음 줄에는 개의 음이 아닌 정수가 주어지며, 그중 번째 정수()는 일째의 주가이다.
입력의 끝은 인 줄로 표시되며, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스마다 세 줄을 출력한다.
- 첫 줄에는 케이스 번호를
Case x형식으로 출력한다(는 1부터 시작한다). - 둘째 줄에는 가장 낮은 개의 가격이 나타난 날들을 오름차순으로 출력한다.
- 셋째 줄에는 가장 높은 개의 가격이 나타난 날들을 내림차순으로 출력한다.
한 줄 안의 값들은 공백 하나로 구분한다. 같은 가격을 가진 날이 여러 개여서 답이 여러 가지일 수 있는 경우, 가장 낮은 가격의 목록은 사전순으로 가장 작은 것을, 가장 높은 가격의 목록은 사전순으로 가장 큰 것을 출력한다.