Здесь я хотел бы предложить свою модель Нейронной сети (а так же свое виденье ее архитектуры и метод обучения), на которую бы не ушло много времени разработки!, а кф стал бы чуточку приятнее.
Ее назначение и использование
Эта Нейронная сеть должна принимать в себя код нескольких решений (НА ОДНОМ И ТОМ ЖЕ ЯЗЫКЕ ПРОГРАММИРОВАНИЯ) какой-то одной задачи (это количество решений должно быть подобрано экспериментально, но оно может быть не таким уж большим, что-то вроде 5-10), и выдавать рейтинг этой задачи, как можно ближе к тому, что выставляется после раунда формулой. Если это реализовать, то можно будет на основе решений с тестирования раунда, заранее определить сложность задач, и внести корректировки в порядок поставления их на раунде, а также их РАЗБАЛЛОВКИ, что внесет большей справедливости.
Архитектура
За основу этой Нейронной сети, я бы взял сверточную НС по тексту, и поначалу подавать только коды решений, так наша модель сможет точнее акцентировать свое внимание на различных деталях решений, и выдавать более точный прогноз его сложности. Также после тестов такой системы, если она не будет выдавать достаточную точность, можно ввести дополнительный нейрон, в который мы будем подавать индекс задачи на раунде, ведь от этого иногда зависит и сложность задач (такое происходит, когда рядом находятся задачи почти одинаковых сложностей).
Обучение
Эту НС следует обучать на достаточно свежих задачах, для оценки сложности которых использовалась одна (последняя) формула (ведь мы же результат ее пытаемся предсказывать), так нам надо взять по (условно) 5 решений каждой задачи из (условно) последних 5 лет за которые прошло порядка 800 раундов (т. е. 4800 задач), и методом обратного распространения ошибки и градиентного спуска корректировать веса на синапсах.
Мы должны бороться со злом, а не примкнуть к нему
Who cares anyway
Сложность задачи зависит не только от кода. Хотя бы недавняя E. Вот моё решение — 251531259. Подобный код можно увидеть в задаче на 1200 рейта, но по clist рейтинг 2100-2200.