#U6012. 假如刘邦捅蛇窝

假如刘邦捅蛇窝

题目背景

刘邦醉意上头,本只想斩杀拦路的大白蛇,一长剑下去反倒惊扰了整窝群蛇。群蛇吐信窜动、四下围拢,密密麻麻的瞬间围上来。

刘邦酒劲壮胆,挥剑左右劈砍,哪怕刘邦再勇武,赤手空拳加一把长剑也难对付成群毒蛇。随行囚徒四散奔逃,场面大乱。

要么刘邦孤身狼狈逃走,队伍彻底瓦解,起义计划彻底搁置,错失起兵良机,再无争霸可能。

要么将群蛇尽数驱散斩杀,斩白蛇的传奇延续,进一步坐实帝王异象。

题目描述

刘邦需要按顺序杀掉 NN 条白蛇。

ii 条白蛇有两个属性:

  • 攻击力 AiA_i:刘邦当前的生命值必须 大于等于 AiA_i 才能挑战该白蛇,刘邦杀掉白蛇后生命值变为 HAiH - A_i
  • 战后荣誉 BiB_i:挑战成功后,刘邦的生命值会变化 BiB_i 点(即生命值变为 HAi+BiH - A_i + B_i)。BiB_i 可能小于 AiA_i,这意味着挑战该白蛇后生命值会净减少。

由于白蛇们刚化为人形,刘邦可以自由决定NN 条白蛇的挑战顺序。每条白蛇必须且只能挑战一次。在整个挑战过程中,刘邦的生命值任何时候都不能低于 0

作为刘邦的战术顾问,请你计算:刘邦初始至少需要多少生命值,才能找到一种挑战顺序,顺利杀掉所有白蛇。

输入格式

第一行包含一个整数 NN,表示白蛇的数量。 接下来 NN 行,每行包含两个整数 AiA_iBiB_i,表示第 ii 条白蛇的攻击力和战后荣誉。

输出格式

输出一行一个整数,表示勇者初始至少需要的生命值。

输入输出样例

输入 #1

3
10 2
5 8
4 1

输出 #1

9

样例解释

最优的挑战顺序是:第 2 条 \to 第 1 条 \to 第 3 条。

  • 初始生命值为 9。
  • 挑战第 2 条:959 \ge 5,通过。生命值变为 95+8=129 - 5 + 8 = 12
  • 挑战第 1 条:121012 \ge 10,通过。生命值变为 1210+2=412 - 10 + 2 = 4
  • 挑战第 3 条:444 \ge 4,通过。生命值变为 44+1=14 - 4 + 1 = 1

数据范围

  • 对于 30%30\% 的数据,N10N \le 10
  • 对于 60%60\% 的数据,N1,000N \le 1,000
  • 对于 100%100\% 的数据,1N100,0001 \le N \le 100,0001Ai,Bi1091 \le A_i, B_i \le 10^9