体检

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

  大家都知道,新生入学的前几周要体检,体检的那一天 HH 早起(九点半)来到了校医院,但是到了之后她发现排队等候体检的人太多了,而且人数在不断的增加。体检需要检查许多个项目,每个项目都需要排队,而且随着时间的推移,每个队列的人数都在慢慢增加。
已知每个体检项目的队列都有两个属性(ai, bi):
1、如果 HH 在 0 时刻站在了这个队列后,那么她需要 ai 秒就可以完成这个项目的体检;
2、如果 HH 没在这个队列中,那么 HH 完成这个项目的时间每秒会在 ai 的基础上增加 bi 秒。
  作为一个测肺活量的时候怒吹了 1000+ 的大神,她希望能尽快体检完毕去吃饭,所以选择正确的体检顺序是非常非常重要的。

Input

输入包含多组测试数据,对于每组测试数据:
输入的第一行为一个正整数 n(1 ≤ n ≤ 105),代表需要体检的项目数;
接下来 n 行每行为两个正整数 a,b(0 ≤ a, b < 1000), 依次代表第1-n个队列的两个属性。
注意:64-bit 整型请使用 long long 来定义,并且使用 %lld 或 cin、cout 来输入输出,请不要使用 __int64 和 %I64d。

Output

输出完成体检的最短时间,由于最后结果可能会很大,所以你只要输出结果对365×24×60×60取余后的结果即可。

Sample Input

2
3 1
2 3
5
1 2
2 3
3 4
4 5
5 6

Sample Output

7
1419

Hint

样例解释:
第一组样例,最短时间:HH 先排在第二个队伍,用时 2 秒体检完成第二个项目,然后排在第一个队伍,用时 5 秒完成第一个项目,总用时 7 秒。
第二组样例,最短时间:HH 按照给定的顺序, 用时 1 秒体检完成第一个项目,用时 5 秒完成第二个项目,用时 27 秒完成第三个项目,用时 169 秒完成第四个项目,用时 1217 秒完成第五个项目,总用时 1+5+27+169+1217=1419 秒。

Source

qinchuan