마라톤
면접 대비시간 제한0.2초메모리 제한256 MB
서로 다른 좌표에 있는 무리가 크기에 반비례하는 속도로 오른쪽으로 달리다 만나면 합쳐진다. 더 이상 합쳐지지 않을 때까지 시뮬레이션한 뒤 최종 무리의 크기를 왼쪽부터 출력한다.
문제
장거리 달리기를 시작했다. 선수들이 달리는 도로는 곧게 뻗은 무한한 직선이라고 하자. 어느 순간 선수들은 개의 그룹으로 나뉘었다. 번 그룹은 명으로 이루어져 있고 좌표 에 있다. 명으로 이루어진 그룹은 좌표가 커지는 방향으로 속력 로 달린다. 인원이 많은 그룹일수록 느리다.
어떤 그룹이 바로 앞 그룹을 따라잡으면 두 그룹은 즉시 하나로 합쳐진다. 합쳐진 그룹의 인원은 두 그룹의 인원을 더한 값이고, 속력도 새 인원에 맞게 바뀐다. 세 그룹 이상이 같은 순간에 합쳐지기도 한다.
도로가 무한하므로 어느 순간부터는 더 이상 합쳐지지 않는다. 마지막에 남는 그룹의 개수와 각 그룹의 인원을 구하시오.
입력
첫째 줄에 정수 이 주어진다 (). 다음 개 줄에는 그룹 하나의 인원 와 좌표 가 주어진다 (, 는 소수점 아래 최대 세 자리까지 주어지는 실수이고 ). 모든 좌표는 서로 다르고, 그룹은 순서와 상관없이 주어진다.
출력
첫째 줄에 남은 그룹의 개수 을 출력한다. 둘째 줄에 남은 그룹의 인원을 많은 것부터 적은 것 순으로, 즉 증가하지 않는 순서로 공백 하나씩 두고 출력한다. 합쳐질 그룹이 더 없는 상태에서는 뒤에 있는 그룹의 인원이 앞 그룹보다 적지 않으므로, 이 순서는 좌표가 작은 그룹부터 큰 그룹까지 늘어놓은 순서와 같다.