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: newlines.c
- Scarica la traccia in C++: newlines.cpp
- Scarica la traccia in Python: newlines.py
- Scarica la traccia in Java: newlines.java
- Scarica la traccia in C#: newlines.cs
- Scarica la traccia in JavaScript: newlines.html
- Scarica la traccia in Rust: newlines.rs
Filippo sta scrivendo una nuova lettera d'amore per la sua ragazza. Per far colpo, Filippo ha scelto di utilizzare un font (il tipo di carattere) che fosse accattivante e la sua scelta è ricaduta su un font monospace, ovvero un font in cui tutti i caratteri hanno la stessa larghezza. Infatti questo font è stato un grande successo nell'ultima lettera che aveva scritto per la sua ragazza!
La sua ultima lettera era composta da parole lunghe , , , separate da uno spazio. Dato che il contenuto della lettera non stava tutto in una sola riga, Filippo aveva suddiviso il testo in righe aggiungendo dei caratteri "a capo" rappresentati come parole speciali con .
Filippo ha scritto la sua ultima lettera mandando il testo a capo esattamente dopo caratteri: più precisamente, non esiste una riga più lunga di caratteri e ogni riga va a capo soltanto quando non è possibile aggiungere un'altra parola alla riga senza superare caratteri.
Filippo è molto pignolo e vuole che la larghezza della sua prossima lettera sia uguale a quella della scorsa lettera, ovvero che anche nella prossima lettera il testo vada a capo esattamente dopo caratteri. Tuttavia Filippo si è dimenticato qual è il valore di che aveva usato nella prima lettera!
Aiutalo a trovare il minimo e il massimo valore che potrebbe avere.
Come primo esempio, considera la lettera:
Sei bella
come un grafo
In questo caso, l'unica lunghezza di riga compatibile con gli acapi è di caratteri.
Come secondo esempio, considera la lettera:
Lorem ipsum dolor sit amet consectetur
adipiscing elit sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua
In questo caso, la larghezza minima di riga è caratteri, mentre la larghezza massima è caratteri.
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 da due righe. La prima riga contiene , il numero totale di parole e caratteri di "a capo" presenti nella lettera. La seconda riga contiene interi , la lunghezza di ciascuna parola, oppure per rappresentare un carattere "a capo".
Il file di output deve contenere la risposta ai casi di test che sei riuscito a risolvere. Per ogni caso di test, il file di output deve contenere una riga con la dicitura:
Case #t: K1 K2
dove t
è il numero del caso di test (a partire da ) e (K1
, K2
) rappresentano il valore minimo e massimo che può assumere nella prima lettera di Filippo.
Gli esempi descritti sopra si rappresentano nel formato di input/output nel seguente modo.
Input:
2
6
3 5 -1 4 2 5
21
5 5 5 3 4 11 -1 10 4 3 2 7 6 -1 10 2 6 2 6 5 6
Output:
Case #1: 13 13
Case #2: 43 47