#PD020D. 食堂排队 (canteen)
食堂排队 (canteen)
食堂排队 (canteen)
- 输入:
canteen.in - 输出:
canteen.out - 时间限制:
2 s - 内存限制:
256 MB
题目描述
训练营食堂每天中午都会排起长队。队伍中共有 名同学,从前到后编号为 到 。
第 名同学想吃的菜可以用一个非负整数 表示。食堂每次只能给一名同学出餐。
如果上一份菜的编号为 ,当前这份菜的编号为 ,那么当前这份菜需要额外花费 的时间。第一份菜不需要额外花费时间。
为了减少总等待时间,食堂可以不完全按照队伍顺序出餐。但是每名同学都有自己的忍耐度 :第 名同学最多允许他身后紧接着的 名同学先拿到餐。
换句话说,如果某个编号大于 的同学在第 名同学之前拿到餐,那么第 名同学就会生气。
请你求出,在不让任何同学生气的前提下,食堂给所有同学出完餐的最小总时间。
输入格式
从文件 canteen.in 中读入数据。
第一行包含一个整数 ,表示数据组数。
对于每组数据:
第一行包含一个整数 。
接下来 行,每行包含两个整数 ,分别表示第 名同学想吃的菜和忍耐度。
输出格式
输出到文件 canteen.out 中。
对于每组数据,输出一行一个整数,表示最小总时间。
样例1输入
1
5
9 2
8 1
0 0
15 1
14 0
样例1输出
16
样例1解释
一种最优出餐顺序为 。
这 份菜依次产生的额外时间为 ,总时间为 。
在这个顺序中,第 名同学允许第 名同学先拿到餐,第 名同学允许第 名同学先拿到餐,因此不会有人生气。
数据范围
对于所有数据,,,,。每个测试点 分。
| 测试点编号 | ||
|---|---|---|
相关
在下列比赛中: