#A6021. 三道工序

三道工序

题目背景

工厂的零件现在要经过三道工序:先在车床上加工,再到铣床上加工,最后到钻床上加工,顺序不能颠倒。第 i 个零件在三台机器上的加工时间分别是 a_i、b_i、c_i 分钟。

每台机器同一时刻只能加工一个零件,一个零件在一台机器上一开工就要连续做完,不能中断;一个零件只有在前一道工序完成后,才能进入下一台机器。

厂长想安排加工顺序,让所有零件全部完工得尽可能早。

这批订单还有一个特别之处:所有零件在第一道工序(车床)上的时间最小值,不小于所有零件在第二道工序(铣床)上的时间最大值,也就是满足 min(a_i) ≥ max(b_i)。

题目描述

给定 n 个零件在三台机器上的加工时间 (a_i, b_i, c_i),且满足 min a_i ≥ max b_i。零件必须依次经过三台机器,每台机器同一时刻最多加工一个零件。求所有零件全部完工的最早时刻(从时刻 0 开始计时)。输出这个最早总时间。

输入格式

第一行一个整数 n。

接下来 n 行,每行三个整数 a, b, c,表示一个零件在三台机器上的加工时间。

输出格式

一个整数,表示所有零件全部完工的最早总时间。

输入输出样例

4
6 2 3
4 1 5
7 3 2
5 2 4
27

样例 1 解释

这里 min a = 4,max b = 3,满足 4 ≥ 3。一个最优的安排是依次加工 (4,1,5)、(5,2,4)、(6,2,3)、(7,3,2):三台机器分别在时刻 22、25、27 全部完成,所以最早是 27。

说明/提示

- 1 ≤ n ≤ 10^5 - 1 ≤ a_i, b_i, c_i ≤ 10^9 - 保证 min a_i ≥ max b_i - 每个零件依次经过三台机器,同一台机器同一时刻最多加工一个零件 - 答案可能很大,注意使用合适的数据类型