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.
- Scarica la traccia in C: consegne.c
- Scarica la traccia in C++: consegne.cpp
- Scarica la traccia in C#: consegne.cs
- Scarica la traccia in Go: consegne.go
- Scarica la traccia in JavaScript (HTML): consegne.html
- Scarica la traccia in Java: consegne.java
- Scarica la traccia in JavaScript (wasm-ide): consegne.js
- Scarica la traccia in Pascal: consegne.pas
- Scarica la traccia in Python: consegne.py
- Scarica la traccia in VisualBasic: consegne.vb
Descrizione del problema
Il famoso mercato ittico di Livorno viene rifornito continuamente per assicurarsi che ci sia sempre pesce fresco.
Per oggi è programmato l'arrivo di casse di pesce che dovranno essere trasportate dal porto al mercato.

Il furgone frigorifero che trasporta il pesce può portare un qualunque numero di casse, impiega un minuto a compiere il tragitto dal porto al mercato e un altro minuto per tornare al porto: impiega quindi un totale di due minuti per ogni consegna. In particolare, se la consegna parte al minuto , il furgone non sarà al porto al minuto e tornerà disponibile al minuto .
Ogni minuto, per minuti numerati da a , arriva al porto una cassa di pesce. Se il furgone è al porto, la cassa viene caricata subito sul furgone, altrimenti sarà caricata al minuto successivo e viene pagata una penale di euro per essere stata lasciata al caldo.
Inoltre, per ogni cassa, viene pagata una tassa di stazionamento di euro, dove è il tempo che passa da quando il pesce arriva al porto a quando il furgone su cui si trova parte per il mercato ittico.
Il tuo compito è scegliere in quali minuti far partire il furgone in modo da minimizzare il costo totale per portare le casse di pesce dal porto al mercato ittico. Quanto puoi spendere al minimo?
Formato di input
La prima riga del file di input contiene un intero , il numero di casi di test. Seguono casi di test, numerati da a . Ogni caso di test è preceduto da una riga vuota.
Ogni caso di test è composto come segue:
- una riga contenente l'intero .
- una riga contenente gli interi .
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 ), seguita dall'intero a 64 bit .
Assunzioni
- , nei file di input che scaricherai saranno presenti esattamente casi di test.
- .
- .
Gruppi di testcase
I casi di test sono divisi in gruppi. Ogni gruppo vale 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:
Esempi di input/output
Input:
4
4
1 3 5 4
5
1 2 1 4 1
6
5 1 4 6 2 3
7
10 2 1 10 3 4 5
Output:
Case #1: 6
Case #2: 5
Case #3: 7
Case #4: 9
Spiegazione
Nel primo caso di esempio è possibile pagare euro facendo partire il furgone al minuto , cioè quando arriva l'ultima cassa.
In questo modo tutte le casse vengono caricate subito e non servirà pagare alcuna penale. La tassa per l'attesa è, in ordine, di , , e euro, dunque in totale.
Nel secondo caso di esempio, se il furgone parte ai minuti e , sarà necessario pagare una penale di euro perché al minuto il furgone si troverà al mercato. I tempi d'attesa sono rispettivamente , , , e , la cui somma è .
Il costo totale è dunque di euro.
In entrambi i casi non è possibile fare di meglio.