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: soldatini.c
- Scarica la traccia in C++: soldatini.cpp
- Scarica la traccia in Python: soldatini.py
- Scarica la traccia in Java: soldatini.java
- Scarica la traccia in C#: soldatini.cs
- Scarica la traccia in JavaScript: soldatini.html
Descrizione del problema
Il nuovo gioco di Giorgio presenta tipi di pedine, i soldatini e i muri.
Inizialmente sono presenti pedine disposte lungo una riga, identificate da una stringa di lunghezza , dove è se la pedina è di tipo soldatino e se è di tipo muro per . Dario sta provando il gioco e ha notato che avere un grande gruppo di soldatini è molto utile per vincere una partita, dove un gruppo di soldatini è un insieme di pedine consecutive di tipo soldatino. Per garantirsi la vittoria Dario può sostituire una pedina di tipo muro con una pedina di tipo soldatino. Questa operazione può essere eseguita una sola volta, altrimenti rischierebbe di essere scoperto. Aiuta Dario a calcolare qual è la dimensione massima di un gruppo di soldatini che può ottenere.
Dati 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:
- la prima riga contiene l'intero .
- la seconda riga contiene la stringa .
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 ) e il valore x
è dimensione massima di un gruppo di soldatini che Dario può ottenere.
Assunzioni
- , nei file di input che scaricherai saranno presenti esattamente casi di test.
- La stringa ha lunghezza e contiene solo caratteri e .
Nei primi casi di test vale .
Esempi di input/output
Input:
2
5
11001
7
0110111
Output:
Case #1: 3
Case #2: 6
Spiegazione
Nel primo caso d'esempio, può sostituire il muro in posizione con un soldatino, ottenendo un gruppo di 3 soldatini e un gruppo di 1 soldatino. La dimensione massima di un gruppo di soldatini è quindi .
Nel secondo caso d'esempio, può sostituire il muro in posizione con un soldatino, ottenendo un unico gruppo di 6 soldatini.