Усложняешь, Тань.
Не надо ограничений, не надо штрафов. Вернее, штрафы нужны для одних конкурсов и не нужны для других. Нужны для нормативных, где давно прописаны таблицы штрафных баллов. Задача машины - только считать автоматически и быстрее то, что пишет человек.
Ну вот на примерах.
Прыг-скок. Штрафов не надо. Кто за 30 секунд большее кол-во отпрыгает туда-сюда - то и молодец.
У нас 10 участников. Кто-то сбил сразу, кто-то вообще не участвовал, кто-то пропрыгал 5 раз, кто-то - 25.Кто не участвовал - получают по 10 баллов (они же - и занятое в этом конкурсе место, т.е. последнее). Итак, две собаки на 10 месте, им по 10 баллов. Две собаки сразу сбили планку, у них 0 прыжков, это самый низкий результат после нестартовавших. Поэтому эти две собаки получают по 9 баллов (они же оказываются на 9 месте). Лучшая собака, занявшая 1 место, сделала 25 прыжков. Остальные выстроились - у кого меньше прыжков, чем у победителя, но больше, чем у остальных - тот на 2 месте. У кого прыжков меньше, чем у второго места, но больше, чем у остальных - 3 место и т.д. Чтоб не путать баллы и места, я сразу присваивала места, без баллов.
Чтоб уменьшить вероятность совпадения количества прыжков, вводится вторая попытка, и прыжки суммируются. Но всё равно велик риск получить совпадение. Тогда эти собаки получают одинаковое место. И у нас может получиться два первых места, одно второе, одно третье (4 собаки из 10), а помним, что из оставшихся две по нулям пропрыгали и двое нестартовавших всегда на месте, равном количеству участников, т.е. двое получили по 10, двое - по 1, один - 2, один - 3.
Что делать с остальными? Кто прыгнул меньше занявшего третье место, но больше остальных - тот на 4 месте. Аналогично 5. Всё. Места распределены. Но за 5 местом разрыв до 9-го. Так быть не может. Поэтому собаки, прыгнувшие по нулям, автоматом получают не по 9, а по 6 месту. Разрыв сохраняется между ними и не стартовавшими, т.к. не стартовать - более тяжкий грех, чем поучаствовать по нулям.
Итак, в таблице будет два 1, одно 2, по одному 3,4,5, два 6 и два 10.
Тут, как видишь, вроде и просто, но и без штрафов хватает сложностей. Почему и нужна машина - ввёл данные, а она пусть голову ломает, сколько там совпадений и каким местом, кроме последнего, заканчивать. Да и последнее будет зависеть от количества участников.
И так надо проработать нюансы по каждому конкурсу, которые могут быть как однотипные, так и противоположные по подсчётам.