Zadanie 2. Wybory
-----------------
Zadanie polega na przeprowadzeniu wyborow. W wyborach bierze udzial
sekretarz oraz N wyborcow. Po rozpoczeciu dzialania i zalatwieniu wlasnych
spraw (ktore dla uproszczenia polegaja na wstrzymaniu procesu przez losowa
chwile) wyborcy zglaszaja sie do sekretarza przekazujac mu swoj
identyfikator. Kazde glosowanie rozpoczyna sie, gdy zbiora sie wszyscy
wyborcy lub uplynie czas STARTTIME i jest quorum 2/3 wszystkich wyborcow.
Wtedy kazdy wyborca bioracy udzial w glosowaniu otrzymuje liste wszystkich,
ktorzy staneli do wyborow i zaczynaja sie wybory zlozone z glosowan
zzlozonych z tur. W przypadku braku quorum glosowanie jest odlozone i wszyscy,
ktorzy sie zglosili musza sie o tym dowiedziec, a nastepnie moga zajac sie
swoimi sprawami, a potem powtornie zglosic sie do glosowania.

Wyborca, ktory sie zglosil, nie moze sie wycofac w trakcie glosowania i
zbierania kworum.

W kazdej turze glosowania wyborcy oddaja swoj glos na jednego z kandydatow
(np. za pomoca generatora liczb losowych), a w kazdej turze odpada ten (lub
odpadaja ci), ktory uzyskal najmniej glosow - decyduje o tym sekretarz
odsylajac pomniejszona o przegranych liste kandydatow. Ci ktorzy odpadli,
traca bierny udzial w glosowaniu, natomiast dalej uczestnicza w nich
czynnie. Glosowanie konczy sie pomyslnie, gdy zostanie wyloniony dokladnie
jeden kandydat w co najwyzej tylu turach, ile wyborcow zglosilo sie do
wyborow. Jezeli tak sie nie stanie (np. gdy w jednej z tur odpadna wszyscy,
poniewaz kazdy dostal po jednym glosie), glosowanie jest uniewaznione i
nalezy przeprowadzic kolejne.

Jezeli w dwoch kolejnych glosowaniach wygra ten sam kandydat to wybory
konczy sie.

Uwagi:
0) Wszelka komunikacja miedzy procesami musi odbywac sie za pomoca kolejek
   komunikatow.
1) Proces sekretarza jest uruchamiany z parametrem okreslajacym liczbe
   procesow-wyborcow. Jego zadaniem jest utworzenie tych procesow.
2) Wyborcy, ktorzy "nie zdazyli" zglosic sie do glosowania moga brac
   udzial w kolejnych glosowaniach (beda co najmniej dwa glosowania).  
3) Nalezy minimalizowac wykorzystanie zasobow i uniknac problemow
   takich jak blokada czy zaglodzenie.

Termin odbioru zadania - zajecia nr 10.

Wszelkie pytania prosze kierowac na adres: janowski@mimuw.edu.pl

Powodzenia.