폴리라인 단순화
시간 제한5초메모리 제한512 MB
삼각형 넓이가 가장 작은 내부 점을 원래 인덱스가 작은 쪽부터 제거하며 각 단계의 인덱스를 출력한다.
문제
지도 애플리케이션은 나라나 도시의 경계를 선분을 이어 붙인 폴리라인으로 나타낸다. 사용자가 지도를 확대하면 세밀한 부분까지 보여야 하므로 이런 폴리라인은 선분이 아주 많다. 반대로 축소하면 세밀한 부분은 중요하지 않고, 선분이 그렇게 많은 폴리라인을 처리하고 그리는 것은 낭비다. 이 문제에서는 원래 폴리라인을 선분이 더 적은 폴리라인으로 근사하는 폴리라인 단순화 알고리즘을 다룬다.
선분이 개인 폴리라인은 점 개 으로 나타내고, 번째 선분은 과 를 잇는다. 내부 점 ()를 지우면 선분 와 이 선분 하나로 바뀌면서 폴리라인이 단순해진다. 지울 점은 이렇게 고른다. 내부 점 마다 , , 이 이루는 삼각형의 넓이를 구하고(세 점이 한 직선 위에 있으면 넓이는 이다), 그 넓이가 가장 작은 점을 지운다. 넓이가 가장 작은 점이 여럿이면 원래 폴리라인에서 번호가 가장 작은 점을 지운다. 남은 폴리라인에 같은 규칙을 다시 적용해서, 선분이 원하는 개수인 개가 될 때까지 되풀이한다.
아래 그림은 한 단계를 보여 준다.

맨 위가 원래 폴리라인이다. 가운데에서는 , , 가 이루는 삼각형의 넓이를 재고, 이 넓이가 모든 삼각형 중에서 가장 작으면 을 지운다. 맨 아래가 을 지운 뒤의 폴리라인이다.
입력
첫째 줄에 정수 ()과 ()이 주어진다. 이어지는 개의 줄에 부터 까지가 차례대로 주어진다. 각 줄에는 점의 좌표와 좌표가 주어지고, 두 값 모두 이상 이하의 정수다. 주어지는 점은 사전순으로 엄격하게 증가한다. 즉 모든 에 대해 이거나, 이면서 이다.
출력
개의 줄을 출력한다. 번째 줄에는 위 알고리즘의 번째 단계에서 지운 점의 번호를 출력한다. 번호는 원래 폴리라인에서의 번호를 쓴다.