아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

소프트웨어 라이선스

시간 제한1초메모리 제한128 MB

요약
한 달에 하나씩 n개의 라이선스를 구매해야 할 때, i번째 라이선스를 t개월 뒤 사면 P_i * R_i^t이 든다면 전체 비용이 최소가 되는 순서를 정한다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 수학, 구현
정답자
아직 제출이 없습니다

문제

보안 회사를 새로 시작하면서 서로 다른 nn개의 암호화 소프트웨어 라이선스를 확보해야 한다. 규정상 라이선스는 한 달에 최대 한 개까지만 확보할 수 있다.

라이선스 ii의 현재 가격은 PiP_i달러이다. 그런데 모든 라이선스의 가격은 지수적으로 상승하여, 라이선스 ii의 가격은 매달 Ri>1R_i > 1배가 된다. 즉, 지금부터 tt개월을 기다린 뒤 라이선스 ii를 구매하면(t=0t = 0은 첫 달에 현재 가격으로 구매함을 뜻한다) 그 가격은 Pi⋅RitP_i \cdot R_i^{t}달러이다.

한 달에 한 개씩만 구매할 수 있으므로 nn개의 라이선스를 모두 사는 데 정확히 nn개월이 걸리며, t=0,1,…,n−1t = 0, 1, \dots, n - 1의 각 달에 라이선스를 하나씩 배정하게 된다. 지불하는 총액이 최소가 되도록 각 달에 어떤 라이선스를 살지 정하고, 그 최소 총 비용을 구하라.

입력

첫째 줄에 확보해야 하는 라이선스의 개수를 나타내는 양의 정수 nn (1≤n≤1001 \le n \le 100)이 주어진다.

다음 nn개의 줄에는 각각 두 수 PiP_i와 RiR_i (Ri>1R_i > 1)가 주어지며, 이는 라이선스 ii의 현재 가격과 매달의 가격 상승 배율이다.

출력

최소 총 비용을 소수점 아래 둘째 자리까지 반올림하여 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    4
    200.0 1.01
    300 1.12
    400 1.05
    650 1.1
    
    예상 출력
    1633.06
    
  2. 예제 2

    입력
    2
    100 1.1
    1000 1.05
    
    예상 출력
    1110.00