SaninОкончательное решение - оставить без изменений уже озвученное решение.
Что касается претензий Georg_ по поводу того, что при ручном пересчете (по методу с заменой 0,5 на 1) - он попадал в проходную зону, то тут ситуация следующая. Самое главное - Georg_ попадал куда-то только при определенном подсчете бухгольца twaryna, причем была бы еще и дележка с Redwhait. То есть условно из 4 вариантов, которые я называл (подсчет от Камикадзе, подсчет моей программы, подсчет программы Dirty, ручной подсчет с заменой 0,5 на 1), Георгу подходили 0,25 варианта, Тварине - 2,5 варианта, Редвайту - 2,25 варианта, Йостаирсу - 3,0 варианта, Сурмаю - 4,0 варианта. Если требуется обоснование решения, то это оно.
Ну а вообще в конечном счете мы решили отбросить ручные подсчеты и руководствоваться только тем, что дает программа.
Что ж, почитаем еще раз:
Не думаю, что есть 100% правильный рецепт как надо учитывать несыгранные игры. Я решил делать так. Формально если игра не начата, то это просто луз по неявке, а значит надо позволить программе свести соперников еще раз. И именно в этом случае игра считается несостоявшейся со всеми вытекающими для бухгольца последствиями. Но если игра была начата и не завершилась по вине одного из игроков, то я считаю неправильным давать программе возможность сводить эту пару еще раз. Самый сложный случай, это когда игра была начата и не завершена, но оснований ставить кому-то победу нет. Тут приходится ставить 0-0, а значит программа сможет свести игроков снова (такая ситуация, например, имела место в противостоянии alkaposha vs rebellious).
Вообще, на мой взгляд было бы лучше запретить генерацию повторных пар. (пролетев раз с соперником совсем не хотелось бы пролетать ещё раз в другом туре). Используемые сейчас правила хороши для более точной и технически справедливой генерации пар, но для геройских турниров имхо порождают больше проблем, чем пользы. И расчет бухгольца стал бы куда более прозрачным, а значит и понятным.