로봇 동력원 순서

가속도 a_i와 지속 시간 s_i를 가진 n개의 에너지원을 재배열해 이동 거리를 최대로 만들고, 주어진 순서보다 얼마나 더 멀리 가는지 출력한다.

보통5정렬그리디수학누적 합면접 대비아직 제출이 없습니다시간 제한0.2초메모리 제한128 MB

문제

사람이 갈 수 없는 곳을 탐사하는 로봇을 설계한다. 목표는 로봇을 최대한 멀리 보내는 것이다. 쓸 수 있는 동력원은 nn개이고, ii번 동력원은 로봇을 aia_i m/s2\text{m/s}^2의 가속도로 sis_i초 동안 가속시킨다. 로봇은 처음에 정지해 있으므로 초기 속도는 0이다.

한 동력원을 고르면 sis_i초를 모두 쓴 뒤 아직 쓰지 않은 다른 동력원으로 곧바로 갈아탄다. 교체에는 시간이 걸리지 않고, 각 동력원은 한 번만 쓸 수 있다. 이동 거리가 최대가 되도록 동력원의 사용 순서를 정한다.

각 동력원의 가속도와 지속 시간이 주어질 때, 최적 순서로 이동한 거리에서 입력에 주어진 순서 그대로 이동한 거리를 뺀 값을 구하는 프로그램을 작성하라.

물리 배경: 가속도가 aa인 동력원을 쓰기 직전의 속도가 vv라면, tt초 뒤 로봇은 vt+12at2vt + \frac{1}{2}at^2미터를 더 이동하고 속도는 v=v+atv' = v + at가 된다.

입력

첫째 줄에 동력원의 개수 nn (1n1041 \le n \le 10^4)이 주어진다. 다음 nn개의 줄에는 동력원 하나의 가속도 aia_i와 지속 시간 sis_i가 공백을 사이에 두고 주어진다. 두 값은 모두 10410^4 이하의 양의 정수다.

출력

최적 순서로 이동한 거리에서 입력 순서로 이동한 거리를 뺀 값을 소수점 아래 한 자리까지 출력한다. 이 차이는 항상 정수이므로 소수점 아래 첫째 자리는 언제나 0이다.