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: calcolatrice.c
- Scarica la traccia in C++: calcolatrice.cpp
- Scarica la traccia in C#: calcolatrice.cs
- Scarica la traccia in Go: calcolatrice.go
- Scarica la traccia in JavaScript: calcolatrice.html
- Scarica la traccia in Java: calcolatrice.java
- Scarica la traccia in Pascal: calcolatrice.pas
- Scarica la traccia in Python: calcolatrice.py
- Scarica la traccia in VisualBasic: calcolatrice.vb
Francesco ha fatto cadere la sua calcolatrice, e ora non funziona più come dovrebbe! Gli unici tasti funzionanti sono il , il , l' e il . Per utilizzare la calcolatrice è costretto a partire dal numero o dal numero (premendo il tasto corrispondente) e applicare zero o più volte una delle possibili operazioni funzionanti:
Per fare uno scherzo ai suoi amici, vorrebbe raggiungere sulla calcolatrice il numero . Quante operazioni deve fare al minimo per farlo?
Nota: premere il tasto o all'inizio conta come un'operazione, inoltre la calcolatrice è danneggiata quindi Francesco è costretto a partire sempre da o (non può ad esempio premere e poi per partire dal numero ) e le uniche operazioni ammesse sono quelle precedentemente elencate (non può per esempio moltiplicare o sottrarre o ).
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:
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: operazioni
"
dove è il numero del caso di test (a partire da ) e l'intero è la risposta al caso di test: il minimo numero di operazioni necessarie per raggiungere .
Input:
2
2
5
13
Output:
Case #1: 1
Case #2: 5
Case #3: 6
Nel primo caso d'esempio, Francesco può direttamente digitare il 2 quindi farà una sola operazione.
Nel secondo caso d'esempio, Francesco può:
Facendo così un totale di mosse.
Nel terzo caso d'esempio, Francesco può:
Facendo così un totale di mosse.