Spegni le lampadine

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 superato la paura del buio, e deve spegnere tutte le NN lampadine, numerate da 11 a NN, nel lungo corridoio della sua casa prima di andare a dormire! Nel corridoio sono presenti N1N-1 interruttori numerati da 11 a N1N-1. Il loro funzionamento è un po' particolare! Le lampadine ii e i+1i+1 sono collegate all'ii-esimo interruttore. Premendo un interruttore entrambe le lampadine ad esso collegate cambieranno di stato: una lampadina cambiando di stato si accende se spenta e si spegne se accesa.

"Corridoio 2"

Questo rende un po' complicato spegnere tutto, quindi Luca ha deciso di non andare troppo per il sottile, e se serve svitare direttamente alcune lampadine. Luca può quindi fare le seguenti azioni:

  • svita lampadina i: svitare l'ii-esima lampadina, spegnendola. Una volta svitata, la lampadina non potrà più essere accesa né riavvitata.
  • premi l'interruttore i: premere l'interruttore ii-esimo, cambiando lo stato delle lampadine ii e i+1i+1 (se e solo se non sono svitate).

Luca è molto stanco e vorrebbe finire al più presto il suo lavoro: trova il minimo numero di azioni necessarie per portare il buio nel corridoio! Conta come una azione sia svitare una lampadina che premere un interruttore.

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, il numero di lampadine nel corridoio.
  • una riga contenente gli NN interi A1,,ANA_{1}, \, \ldots, \, A_{N}, lo stato delle lampadine: Ai=1A_i = 1 indica che la lampadina ii è accesa e Ai=0A_i = 0 che è spenta.

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 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.
  • 0Ai10 \leq A_i \leq 1.

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:

AssunzioniGruppiInizialmente tutte le lampadine sono accese1,2Non ci sono due lampadine accese vicine3,4N205,6Nessuna assunzione aggiuntiva7,8,9,10 \small \def\arraystretch{1.5} \begin{array}{|c|c|} \hline \texttt{Assunzioni} & \texttt{Gruppi} \\ \hline \text{Inizialmente tutte le lampadine sono accese} & 1, 2 \\ \hline \text{Non ci sono due lampadine accese vicine} & 3, 4 \\ \hline N \leq 20 & 5, 6 \\ \hline \text {Nessuna assunzione aggiuntiva} & 7, 8, 9, 10 \\ \hline \end{array}

Esempi di input/output


Input:

4

4
1 1 0 1

5
1 0 1 0 1

6
1 1 1 1 1 0

7
0 1 1 1 0 1 0

Output:

Case #1: 2
Case #2: 3
Case #3: 3
Case #4: 3

Spiegazione

Nel primo caso di esempio, le lampadine nel corridoio sono nello stato A=[1,1,0,1]A = [1, 1, 0, 1], come in figura:

"Corridoio 1"

per spegnere le lampadine Luca potrebbe:

  1. Premere l'interruttore 11 cambiando lo stato delle lampadine 11 e 22, ottenendo [0,0,0,1][0, 0, 0, 1].
  2. Svitare la lampadina 44, ottenendo [0,0,0,0][0, 0, 0, 0].

Quindi, Luca farebbe due azioni e non è possibile farne meno.

Nel secondo caso di esempio, le lampadine nel corridoio sono nello stato A=[1,0,1,0,1]A = [1, 0, 1, 0, 1], come in figura:

"Corridoio 2"

Per spegnere le lampadine Luca potrebbe:

  1. Svitare la lampadina 11, ottenendo [0,0,1,0,1][0, 0, 1, 0, 1].
  2. Svitare la lampadina 33, ottenendo [0,0,0,0,1][0, 0, 0, 0, 1].
  3. Svitare la lampadina 55, ottenendo [0,0,0,0,0][0, 0, 0, 0, 0].

Tre azioni sono quindi sufficienti e Luca non potrebbe farne di meno.