#P5338. 【大湾区第一届小学组复赛】3.排队接水(team up)

【大湾区第一届小学组复赛】3.排队接水(team up)

题目描述

欢迎来到神奇的水源之地!这里有 nn 个口渴的学生,他们在排队等待接水。每个学生都有自己的接水时间 tit_i 和烦躁增长速率 viv_i

当一个学生需要排队等待 xx 的时间才能接水时,他的烦躁值会增加 x×vix \times v_i。我们的目标是通过合理安排学生的接水顺序,使得所有学生的烦躁值之和最小。

你需要编写一个程序,根据每个学生的接水时间和烦躁增长速率,找到最优的接水顺序,以最小化学生们的烦躁值之和。由于最优的接水顺序可能不唯一,你只需要输出最小的烦躁值之和即可。

输入格式

第一行包含一个整数 nn,表示学生的数量。

接下来的 nn 行,每行包含两个正整数 tit_iviv_i,表示第 ii 个学生的接水时间和烦躁增长速率。

输出格式

输出一个整数,表示最小的烦躁值之和。

样例

3
5 2
3 1
4 3
17

样例解释

一种最优的接水顺序是学生 3、学生 1、学生 2。计算总烦躁值的和:

  • 学生 3 的等待时间为 00,烦躁值为 0×3=00 \times 3 = 0
  • 学生 1 的等待时间为 44,烦躁值为 4×2=84 \times 2 = 8
  • 学生 2 的等待时间为 99,烦躁值为 9×1=99 \times 1 = 9

烦躁值之和为 0+8+9=170 + 8 + 9 = 17,这是最小的可能值。

数据范围与提示

  • 对于 10%10\% 的数据:n=2n = 2
  • 对于 30%30\% 的数据:n10n \le 10
  • 对于 70%70\% 的数据:n103n \le 10^3
  • 对于 100%100\% 的数据:n2×105n \le 2 \times 10^5ti2×104t_i \le 2 \times 10^4vi2×104v_i \le 2 \times 10^4