#CSPJ1. 信号灯

信号灯

信号灯

题目描述

校园开放日开始了,小 J 需要沿着一条固定路线前往主会场。

路线中共有 nn 个信号灯。小 J 从时刻 00 出发。通过第 i1i-1 个信号灯后,他需要行走 xix_i 秒到达第 ii 个信号灯。特别地,到达第一个信号灯前也需要先行走 x1x_1 秒。

ii 个信号灯按照如下规则不断循环变化:

  • 绿灯持续 gig_i 秒;
  • 随后红灯持续 rir_i 秒;
  • 然后重新进入绿灯,重复以上过程。

所有信号灯都从时刻 00 开始计时。也就是说,在每个长度为 gi+rig_i+r_i 的周期内:

  • 0tmod(gi+ri)<gi0 \le t \bmod (g_i+r_i) < g_i 时,第 ii 个信号灯为绿灯;
  • 否则,第 ii 个信号灯为红灯。

当小 J 到达一个信号灯时:

  • 若当前为绿灯,他可以立刻通过;
  • 若当前为红灯,他必须等待到下一次绿灯开始后才能通过。

通过信号灯本身不消耗时间。

请你求出小 J 通过最后一个信号灯时的时刻。

输入格式

第一行一个整数 nn,表示信号灯的数量。

接下来 nn 行,每行三个整数 xi,gi,rix_i,g_i,r_i,分别表示到达第 ii 个信号灯前需要行走的时间、绿灯持续时间和红灯持续时间。

输出格式

输出一个整数,表示小 J 通过最后一个信号灯时的时刻。

样例输入

3
4 5 3
3 4 4
2 3 5

样例输出

10

样例解释

  • 小 J 于时刻 44 到达第一个信号灯。此时 4mod8=4<54 \bmod 8=4<5,为绿灯,可以直接通过。
  • 他于时刻 77 到达第二个信号灯。此时 7mod8=747 \bmod 8=7\ge 4,为红灯,因此等待至时刻 88
  • 他于时刻 1010 到达第三个信号灯。此时 10mod8=2<310 \bmod 8=2<3,为绿灯,可以直接通过。

因此答案为 1010

数据范围

对于所有测试数据:

  • 1n1051 \le n \le 10^5
  • 1xi,gi,ri1091 \le x_i,g_i,r_i \le 10^9
子任务编号 分值 特殊限制
11 2020 n10n \le 10
22 3030 n1000n \le 1000,且 xi,gi,ri1000x_i,g_i,r_i \le 1000
33 5050 无特殊限制

提示

答案可能超过 int 的表示范围,请使用 long long 存储时间。