Fie urmatorul joc: N copii stau in cerc, fiecare copil are atribuit un numar. Numerele se atribuie de la 1 pana la N, in ordine. Spre exemplu daca in cerc sunt N=8 copii, ei vor avea numerele 1, 2, 3, 4, 5, 6, 7 si 8.

Copilul cu numarul "i" sta intre copii cu numerele "i-1" si "i+1". Exceptie face copilul cu numarul "1" care sta intre copilul cu numarul "N" si cel cu numarul "2". O alta exceptie este copilul cu numarul "N" care sta intre copilul cu numarul "N-1" si cel cu numarul "1".

Copii incep o numaratoare. Se porneste cu numararea de la copilul cu numarul "1". Se numara din M in M copii. Fiecare al M-lea copil paraseste cercul.

Spre exemplu fie cazul cand in cerc sunt N=8 copii. Initial asezarea copiilor este urmatoarea:

1 2 3 4 5 6 7 8

Ne imaginam ca ei sunt asezati in cerc, in asa fel incat "8" se afla langa "1".

Se numara cu M=8. Numaratoarea incepe de la copilul "1". Dupa ce se numara 8 copii, se ajunge din nou la "1", care iese din cerc. Acum asezarea copiilor devine:

2 3 4 5 6 7 8

Se continua numaratoarea cu inca 8 copii. Urmatorul care iese din cerc este "2".

3 4 5 6 7 8

Se continua numaratoarea cu 8 si urmatorul care iese este "4".

3 5 6 7 8

Din nou se numara 8 copii si va iesi "7".

3 5 6 8

La urmatoarea numarare iese "6".

3 5 8

Apoi iese "3".

5 8

Iar apoi iese "8".

5

Ultimul copil care ramane in cerc se considera ca a castigat jocul. In exemplu nostru castigatorul este 5.


Realizati un program Pascal care, folosind liste circulare simplu sau dublu inlantuite, simuleaza acest joc. Folositi ca si referinta fisierul executabil de la link-ul "[EXE]" (redenumiti fisierul de la extensia "ex_" la extensia "exe" dupa download).

Ramane la latitudinea voastra sa alegeti ce fel de liste folositi: simplu sau dublu inlantuite. Singura impunere este ca listele sa fie circulare.