[Pascal] Организация турнира (сортировки)
Программа выполняет функции организатора турниров по одной из
трех систем:
- турнир с немедленным выбыванием ( жеребьевка производится
случайным образом);
- круговой турнир ( все соперники играют друг с другом ровно один
раз и победителем оказывается игрок с лучшим результатом);
- турнир по швейцарской системе.
Швейцарская система состоит в следующем: в первом круге соперник, “посеянный” первым, встречается с последним, второй - с предпоследним и т.д. После каждого круга соперники упорядочиваются по среднему числу очков у побежденных ими противников (ничья не учитывается). В следующем круге соперник, стоящий в описанной классификации на первом месте, встречается с соперником, занимающем наиболее высокое место из тех, с кем он еще не играл. Остальные пары определяются аналогичным образом: соперники должны иметь равное количество очков, причем повторные встречи не допускаются.
Основные правила проведения турниров:
- ни один из соперников не должен участвовать более чем в одном матче одного круга, а число кругов должно примерно равняться логарифму числа участников;
- никакие два соперника не должны встречаться больше одного раза.