SuperLuigi Speedrun

Attenzione: Questo task ha un tempo limite di 10 minuti per l'invio della soluzione. Una volta richiesto un input, il timer partirà in automatico, e dopo la scadenza non sarà più possibile inviare una soluzione per quell'input. È sempre possibile richiedere un nuovo input, per cui non preoccuparti se il timer scade: dovrai semplicemente richiedere e scaricare un nuovo input.

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

Luca ha comprato il nuovissimo videogioco SuperLuigi. Luigi, il protagonista del videogioco, in ogni livello deve superare NN piloni numerati da 00 ad N−1N-1. Su ogni pilone ci sono MM piattaforme su cui Luigi può saltare. La piattaforma più in basso dell'ii-esimo pilone si trova ad HiH_i metri dal suolo e le rimanenti M−1M-1 piattaforme del pilone si trovano ciascuna DiD_i metri sopra la piattaforma sottostante. Le piattaforme dell'ii-esimo pilone sono quindi collocate alle altezze Hi,Hi+Di,Hi+2⋅Di,…,Hi+(M−1)⋅DiH_i,H_i+D_i,H_i+2 \cdot D_i, \ldots, H_i+(M-1)\cdot D_i. Quindi la piattaforma numero jj, con 0≤j<M0 \le j < M, sul pilone numero ii, con 0≤i<N0 \le i < N, si troverà ad Hi+Di⋅jH_i + D_i \cdot j metri di altezza rispetto al suolo. Luigi deve raggiungere una qualsiasi piattaforma del pilone N−1N-1 partendo da terra, ad altezza zero, subito prima del pilone 00. Inizialmente deve quindi saltare su una qualunque piattaforma del pilone 00, per poi spostarsi di pilone in pilone.

"SuperLuigi"

Per ogni pilone ii, con 0≤i<N−10 \le i < N-1, Luigi può saltare da ogni piattaforma del pilone ii a una qualsiasi piattaforma del pilone i+1i+1. Luca non vuole solo completare il livello, ma vuole metterci anche il minor tempo possibile. Per saltare da un punto ad altezza hh ad un punto di altezza kk Luigi impiega ∣h−k∣|h - k| (valore assoluto di h−kh-k) secondi. Il tempo totale impiegato per completare un livello è quindi la somma dei tempi impiegati in ogni salto. Quanti secondi servono, al minimo, per completare il livello?

Formato 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 come segue:

  • una riga contenente i due interi NN, MM.
  • una riga contenente gli NN interi H0, …, HN−1H_{0}, \, \ldots, \, H_{N-1}.
  • una riga contenente gli NN interi D0, …, DN−1D_{0}, \, \ldots, \, D_{N-1}.

Formato 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 #test: tempo"

dove test\mathtt{test} è il numero del caso di test (a partire da 11) e l'intero tempo\mathtt{tempo} è la riposta al test.

Assunzioni

  • T=10T = 10, nei file di input che scaricherai saranno presenti esattamente 1010 casi di test.
  • 2≤N≤1 0002 \le N \le 1\,000
  • 2≤M≤10 0002 \le M \le 10\,000
  • 0≤Hi≤10 0000 \le H_i \le 10\,000 per ogni i=0, …, N−1i = 0, \, \dots, \, N-1.
  • 0≤Di≤10 0000 \le D_i \le 10\,000 per ogni i=0, …, N−1i = 0, \, \dots, \, N-1.
  • nei primi 22 casi di test vale inoltre che M=2M = 2.

Esempi di input/output


Input:

3

2 2
1 1
2 3

3 3
9 0 8 
8 2 15 

5 2
6 10 7 1 4 
4 17 10 14 1


Output:

Case #1: 1
Case #2: 18
Case #3: 22

Spiegazione

Nel primo caso d'esempio Luca può far saltare Luigi da terra fino alla piattaforma 00 sul pilone 00 ad altezza 11 impiegandoci 11 secondo. Poi può far saltare Luigi sulla piattaforma 00 sul pilone 11 ad altezza 11 impiegandoci 00 secondi. La riposta dunque sarà 11 e Luca non può fare di meglio.

"Primo esempio"

Nel secondo caso d'esempio Luca può far fare le seguenti mosse a Luigi:

  • Saltare sulla piattaforma ad altezza 99 sul pilone 00 mettendoci 99 secondi.
  • Saltare sulla piattaforma più in alto sul pilone 11 ad altezza 44 mettendoci 55 secondi.
  • Saltare sulla piattaforma ad altezza 88 sull'ultimo pilone mettendoci 44 secondi. in totale Luca ci mette 1818 secondi a completare il livello.

"Secondo esempio"

Nel terzo caso d'esempio, il livello è come segue.

"Terzo esempio"

Invia soluzione

Accedi per inviare soluzioni
Accedi