#A6020. 流水线加工
流水线加工
题目背景
工厂接到了一批零件订单,一共 n 个零件。每个零件都要先在车床上加工一道,再到铣床上加工一道,两道工序的先后顺序不能颠倒。
第 i 个零件在车床上需要 a_i 分钟,在铣床上需要 b_i 分钟。每台机器同一时刻只能加工一个零件,一个零件在一台机器上一旦开工就要连续做完,不能中断;而且一个零件只有在车床上加工完之后,才能上铣床。
厂长想安排这 n 个零件的加工先后,让所有零件全部加工完的时刻尽可能早。
题目描述
给定 n 个零件在车床、铣床上的加工时间 (a_i, b_i),每个零件必须先经过车床、再经过铣床,同一台机器同一时刻最多加工一个零件。求所有零件全部完工的最早时刻(从时刻 0 开始计时)。输出这个最早的总时间。
输入格式
第一行一个整数 n。
接下来 n 行,每行两个整数 a, b,表示一个零件在车床、铣床上的加工时间。
输出格式
一个整数,表示所有零件全部完工的最早总时间。
输入输出样例
4
3 6
5 2
8 4
4 7
22
样例 1 解释
一个最优的安排是依次加工 (3,6)、(4,7)、(8,4)、(5,2):车床分别在时刻 3、7、15、20 完成这四件;铣床分别在时刻 9、16、20、22 完成,所以全部完工的最早时刻是 22。其他安排都达不到这么早。
说明/提示
- 1 ≤ n ≤ 10^5 - 1 ≤ a_i, b_i ≤ 10^9 - 同一台机器同一时刻只能加工一个零件 - 每个零件必须先在车床加工完,才能上铣床 - 答案可能很大,注意使用合适的数据类型