#GD23X2T3. 排队接水(team up)

排队接水(team up)

题目背景

2023第一届粤港澳信息学创新大赛复赛小学组T3

注意:本题是以文件读写的方式进行评测,请在代码中使用freopen()等文件读写的方式进行输入输出。

文件名请参考本标题下方的“文件IO:”后面的内容

时空复杂度:1s,512M。

题目描述

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

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

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

输入格式

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

输出格式

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

输入 #1

3
5 2
3 1
4 3
17

说明/提示

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

学生3的等待时间为0,烦躁值为0x3=0。

学生1的等待时间为4,烦躁值为4x2=8.

学生2的等待时间为9,烦躁值为9x1=9。

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

10%10\%的数据 n=2n = 2

30%30\%的数据 n10 n \le 10

70%70\%的数据 n103 n \le 10^3

100%100\%的数据 $ n \le 2 \times 10^5, t_i \le 2 \times 10^4, v_i \le 2\times 10^4$

2
1034 2562
18645 1594
1648196
10
16277 10888
2417 136
15979 13360
15711 569
4649 19693
10763 3586
18259 15715
8892 1366
8309 6170
19072 14992
2538128204