Corsa ad ostacoli

Per aiutarti con questo task, abbiamo preparato delle tracce di soluzione, che includono solo le parti di lettura dell'input e scrittura dell'output (da tastiera e su schermo). Puoi decidere se leggere/scrivere su file decommentando le opportune righe di codice.

Descrizione del problema

Monica ha deciso di portare Mojito ad una corsa ad ostacoli!

"Uno degli avversari di Mojito"

La corsa si svolge in un tracciato rettilineo lungo LL metri, e la partenza si trova all'inizio del tracciato nel punto 00. Nel tracciato sono presenti NN ostacoli: ciascun ostacolo si trova a XiX_i metri dalla partenza ed ha una difficoltà PiP_i, per cui superando tale ostacolo Mojito guadagna PiP_i punti.

Per rendere la corsa più difficile, gli organizzatori hanno però deciso che ciascun ostacolo può essere attraversato solo in un breve intervallo. In particolare, l'ii-esimo ostacolo appare dopo SiS_i secondi dall'inizio della gara e scompare immediatamente dopo, quindi per poter superare l'ostacolo Mojito deve trovarsi esattamente nel punto XiX_i all'instante SiS_i. Mojito può correre avanti e indietro nel tracciato oppure può stare fermo a rincorrersi la coda, purtroppo però è in grado di correre solo fino a 11 metro al secondo.

La corsa dura esattamente DD secondi, al termine dei quali si sommano i punteggi degli ostacoli che Mojito è riuscito a superare. Mojito si è allenato duramente, ed è quindi in grado di superare tutti gli ostacoli che riesce a raggiungere in tempo senza difficoltà. Qual è il massimo numero di punti che Mojito riesce a totalizzare?

Dati di input

La prima riga del file di input contiene un intero TT, il numero di casi di test. Seguono TT casi di test, numerati da 11 a TT. Ogni caso di test è preceduto da una riga vuota.

Ogni caso di test è composto da N+1N+1 righe:

  • la prima riga contiene i tre interi NN, LL, DD;
  • le successive NN righe contengono ciascuna tre interi XiX_i, PiP_i e SiS_i.

Dati di output

Il file di output deve contenere la risposta ai casi di test che sei riuscito a risolvere. Per ogni caso di test che hai risolto, il file di output deve contenere una riga con la dicitura

Case #t: x

dove t è il numero del caso di test (a partire da 11) e il valore x è il massimo punteggio che Mojito può totalizzare.

Assunzioni

  • T=19T = 19, nei file di input che scaricherai saranno presenti esattamente 1919 casi di test.
  • 1≤N≤10001 \le N \le 1000.
  • 1≤L,D≤1091 \le L, D \le 10^9.
  • 0≤Xi≤L0 \le X_i \le L per ogni 0≤i≤N−10 \le i \le N-1.
  • 0≤Pi≤1060 \le P_i \le 10^6 per ogni 0≤i≤N−10 \le i \le N-1.
  • 0≤Si≤Si+1≤D0 \le S_i \le S_{i+1} \le D per ogni 0≤i≤N−20 \le i \le N-2.

Nei primi 1111 casi di test valgono le seguenti assunzioni aggiuntive:

  • L≤100L \le 100.

Nei primi 66 casi di test valgono, inoltre, le seguenti assunzioni aggiuntive:

  • N,D≤100N, D \le 100.

Esempi di input/output


Input:

2

2 20 20
7 30 2
9 10 11

4 10 10
7 20 7
4 6 7
3 7 8
2 5 9

Output:

Case #1: 10
Case #2: 20

Spiegazione

Nel primo caso d'esempio Mojito non è in grado di raggiungere il primo ostacolo all'istante 22 in quanto è troppo distante dalla partenza. Quindi, può solo prendere il secondo ostacolo guadagnando 1010 punti. Per farlo, per esempio, può correre fino al punto dove comparirà l'ostacolo, rincorrersi la coda sul posto per 2 secondi e all'istante 1111 superare l'ostacolo.

Esempio 1


Nel secondo caso d'esempio Mojito può andare all'istante 77 nel punto 44 e poi spostarsi nei punti 33 e 22 prendendo gli ultimi 33 ostacoli, oppure può andare all'istante 77 nel punto 77. La prima scelta permette a Mojito di guadagnare 6+7+5=186+7+5 = 18 punti mentre la seconda scelta gli permette di guadagnare 2020 punti, la risposta è quindi 2020.

Esempio 2

Invia soluzione

Accedi per inviare soluzioni
Accedi