Passeggiata impegnativa

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

In una fresca giornata primaverile, Dario ha deciso di fare una passeggiata per il parco. Davanti a sé sono presenti NN tratti di strada, ciascuno dei quali è lungo LiL_i passi.

Per compiere un passo Dario consuma un panino, quindi per percorrere l'ii-esimo tratto di strada Dario consuma LiL_i panini.

"Panini"

All'inizio dell'ii-esimo tratto c'è un chiosco che vende panini ad un prezzo di PiP_i monete l'uno. Lo zaino di Dario ha capienza infinita e ogni chiosco ha a disposizione un numero illimitato di panini, quindi Dario può a ogni chiosco comprare quanti panini vuole.

Quante monete spende al minimo Dario per arrivare alla fine degli NN tratti?

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 l'intero NN.
  • una riga contenente gli NN interi L0,,LN1L_{0}, \, \ldots, \, L_{N-1}.
  • una riga contenente gli NN interi P0,,PN1P_{0}, \, \ldots, \, P_{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: ", dove test è il numero del caso di test (a partire da 11), seguita dall'intero a 64 bit ris\mathtt{ris}.

Assunzioni

  • T=20T = 20, nei file di input che scaricherai saranno presenti esattamente 2020 casi di test.
  • 1N1051 \leq N \leq 10^5.
  • 0Li1060 \leq L_i \leq 10^6.
  • 0Pi1060 \leq P_i \leq 10^6.

Gruppi di testcase

I casi di test sono divisi in gruppi.
Ogni gruppo vale 55 punti, e per ottenere il punteggio relativo ad esso è necessario risolvere correttamente tutti i casi di test che lo compongono.

Su alcuni gruppi valgono delle assunzioni aggiuntive:

AssunzioniGruppiOgni Pi ha lo stesso valore.1PiPi+1 per ogni i=0N22,3PiPi+1 per ogni i=0N24N10005,6,7Nessuna assunzione aggiuntiva8,9,10\small \def\arraystretch{1.5} \begin{array}{|c|c|} \hline \texttt{Assunzioni} & \texttt{Gruppi} \\ \hline \text{Ogni } P_i \text{ ha lo stesso valore.} & 1 \\ \hline P_i \leq P_{i + 1} \text{ per ogni } i = 0 \ldots N - 2 & 2, 3 \\ \hline P_i \geq P_{i + 1} \text{ per ogni } i = 0 \ldots N - 2 & 4 \\ \hline N \leq 1000 & 5, 6, 7\\ \hline \text{Nessuna assunzione aggiuntiva} & 8, 9, 10 \\ \hline \end{array}

Esempi di input/output


Input:

2

3
3 2 5
4 6 2

5
2 4 6 3 1
7 3 4 2 8


Output:

Case #1: 30
Case #2: 52

Spiegazione

Nel primo caso di esempio, Dario compra:

  • 55 panini al chiosco 00 per percorrere i tratti 00 e 11;
  • 55 panini al chiosco 22 per percorrere il tratto 22. In questo caso Dario spende 54+52=305 \cdot 4 + 5 \cdot 2 = 30 monete.

Nel secondo caso di esempio, Dario compra:

  • 22 panini al chiosco 00 per percorrere il tratto 00;
  • 1010 panini al chiosco 11 per percorrere i tratti 11 e 22;
  • 44 panini al chiosco 22 per percorrere i tratti 33 e 44. In questo caso Dario spende 27+103+42=522 \cdot 7 + 10 \cdot 3 + 4 \cdot 2 = 52 monete.