Descrizione
Due sguatteri devono lavare una pila di N piatti.
Uno dei due propone all'altro il seguente gioco: "A turno togliamo dalla pila da 1 a K-1 piatti. Chi rimuove l'ultimo piatto li deve lavare tutti".
Se il resto di N modulo K e' diverso da 1 (e assumendo K, N >=2), esiste una strategia che fa vincere sempre il primo giocatore.
L'idea e' la seguente: inizialmente il primo giocatore rimuove un numero di piatti tale che il numero N' di piatti rimanenti e' cK+1 per qualche numero naturale c (questo e' sempre possibile rimuovendo almeno un piatto e non più di K-1).
Quindi, ogni volta che il secondo giocatore rimuove X piatti, l'altro ne rimuove K-X (valore compreso fra 1 e K-1).
Voi dovrete semplicemente scrivere un programma che implementa la strategia vincente del primo giocatore sotto le ipotesi suddette su N e K. Per esempio se N=18, K=5, e le scelte del secondo giocatore (prima della mossa finale in cui è costretto a rimuovere l'ultimo piatto rimasto) sono, nell'ordine, 4, 2 e 3, i valori in input saranno nell'ordine
18
5
4
2
3
e l'output dovrà essere
2
1
3
2
Input
In input ricevete nell'ordine N, K e la sequenza di interi corrispondenti alle mosse del secondo giocatore
Output
Dovete stampare in sequenza ciascun intero x corrispondente alle mosse del primo giocatore, usando un'istruzione del tipo
printf("%d\n",passi);
Attenzione NON producete nessuna altra scritta oltre i numeri, altrimenti il test automatico del vostro programma fallirà miseramente!
Come compilare ed eseguire il programma
- usate un editor per scrivere il testo del programma e salvatelo in formato testo semplice in un file con l'estensione .c (ad esempio di nome trexpuno.c)
- NON usate Word, Openoffice, Kword, Abiword che introducono caratteri strani
- compilate (e contemporaneamente linkate) il programma con il comando
gcc -g -o programma programma.c
- eseguite il programma scrivendo
./programma
Come consegnare il programma
- Avete tempo fino a Giovedi' 10 Novembre alle ore 23.59.
- Consegnate il testo del programma sorgente C da voi scritto. Io lo compilerò e testerò.
- Usate esclusivamente la pagina di consegna. Non verranno accettate spedizioni via email.
--
FabrizioGrandoni - 05 Nov 2004