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! frown

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


This topic: Programmazione1/AA0506/AD > ConsegnaCompiti > WebHome > HomeWork1
Topic revision: r5 - 2005-11-08 - FabrizioGrandoni
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback