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 |---+ +---+ +---+