Drumul lui Luka

Time limit: 0.5s Memory limit: 64MB Input: Output:

Cerința

Luka își conduce camionul de-a lungul unui drum drept, cu multe semafoare. Pentru fiecare semafor el știe cât timp va rămâne aprins pe culoarea roșu și cât timp pe culoarea verde (ca un semafor obișnuit, culorile alternează între roșu si verde, iar semaforul funcționează la nesfârșit, nu există culoarea galben).

Când Luka își începe călătoria, toate semafoarele sunt pe culoarea roșu și sunt la început de ciclu. Începand pe rosu, fiecare semafor se va face verde peste RkR_k secunde, unde RkR_k este cât timp semaforul respectiv stă pe culoarea roșu, după care își schimbă culoarea in verde și se va face roșu din nou după VkV_k secunde și se repetă ciclul. Luka se mișcă cu o unitate de distanță pe secundă. Când un semafor este roșu, Luka se oprește și așteaptă până devine verde.
De asemenea, Luka este un șofer foarte atent și pleacă de pe loc fix când semaforul se face verde, iar camionul său este atât de puternic, încat ajunge la viteza de croaziera în timp neglijabil.

Scrieți un program care determină de cât timp are nevoie Luka pentru a ajunge la capătul drumului. Acesta începe drumul la distanța zero și ajunge la capătul acestuia la distanță LL.

Notă: Datele de intrare se citesc de la tastatură, iar datele de ieșire se afișează în consolă.

Date de intrare

Prima linie conține două numere naturale NN, numărul de semafoare, și LL, lungimea drumului.
Fiecare dintre urmatoarele NN linii conține câte trei numere întregi DkD_k, RkR_k, VkV_k, unde DkD_k reprezintă distanța semaforului de la începutul drumului, RkR_k reprezintă cât timp semaforul este roșu, iar VkV_k reprezintă cât timp semaforul este verde.
Semafoarele vor fi ordonate crescator, in funcție de DD. Nu vor exista mai multe semafoare in aceeași poziție.

Date de ieșire

Afișați timpul (în secunde) de care Luka are nevoie pentru a ajunge la capătul drumului.

Restricții și precizări

  • 1N100 ; 1L10001 \le N \le 100 \ ; \ 1 \le L \le 1000
  • 1Dk<L ; 1Rk,Vk1001 \le D_k < L \ ; \ 1 \le R_k, V_k \le 100

Exemplu 1

stdin

2 10
3 5 5
5 2 2

stdout

12

Exemplu 2

stdin

4 30
7 13 5
14 4 4
15 3 10
25 1 1

stdout

36

Log in or sign up to be able to send submissions!