Zadanie zaliczeniowe z Pracowni programowania, ZSI, I rok, 2000/2001

termin opublikowania: tydzien 29.01 - 02.02.2001
termin oddania:       tydzien 05.02 - 09.02.2001


Problem Flawiusza Josephusa (2 pkt.)
------------------------------------

Flawiusz Josephus byl znanym historykiem zyjacym w I w. Legenda glosi, ze 
gdyby nie jego talent matematyczny, nie dozylby chwili gdy zostal slawny.
W czasie wojny zydowsko-rzymianskiej byl on w oddziale 41 zydowskich 
buntownikow osaczonych przez Rzymian w jaskini. Wolac smierc od niewoli, 
buntownicy staneli w kole, odliczajac i zabijajac co trzecia osobe. Jednak 
Flawiusz, wraz ze swym przyjacielem, chcieli uniknac bezsensownej smierci. 
Flawiusz szybko obliczyl gdzie powinni stanac, aby byli ostatnimi dwoma 
osobami jakie zostana przy zyciu. 

Napisz program, ktory dla zadanej liczby buntownikow n, oraz liczby k, do 
ilu odliczano wyznaczajac kolejna ofiare, obliczy poczatkowe pozycje dwoch 
osob, ktore zostana ostatnie przy zyciu. Pozycje sa ponumerowane od 1 do n. 
Odliczanie zaczyna sie od pozycji nr 1, a pierwsza ofiara ma numer  
(k-1) mod n + 1.

Twoj program powinien utworzyc jednokierunkowa liste cykliczna (por. rysunek), 
zawierajaca liczby 1,...,n, a nastepnie symulowac przebieg zdarzen usuwajac 
kolejne ofiary z listy. 

                     +---+    +---+
                 +---| 6 |<---| 5 |<--+
                 |   +---+    +---+   |
                 v                    |
               +---+                +---+
  Poczatek --->| 1 |                | 4 |
               +---+                +---+
                 |                    ^
                 |   +---+    +---+   | 
                 +-->| 2 |--->| 3 |---+
                     +---+    +---+