Зеленоградский турнир 2
В свободное время готовлю задачи ко второму соревнованию по программированию. Пока есть идеи для 3-х задач, одна уже почти целиком готова и 2 полностью осмыслены, осталось только нагенерить тестовых данных. Собственно если у вас есть идеи каких нибудь интересных задач с неоднозначными решениями (challenge), то прошу высказываться в комментариях.
Поясню, что такое неоднозначные решения — это когда полностью и оптимально решить задачу невозможно из-за ограничений времени, но можно придумать алгоритм, который в короткие сроки даст ответ наиболее близкий к правильному. Ну и соответственно, надо знать способ как проверять и начислять очки за решение — часто это наиболее сложный момент.
Можно взять простую игрушку из того же Гарднера и попросить программку сделать 1 ход. Проверка задачи заключается в проведении соревнования между программами по круговой системе. Очки начислять в соответствии с положением в «турнирной таблице».
К сожалению соревнования между программами устраивать нельзя. Эта возможность появится ориентирововчно летом, а скорее всего осенью. Поэтому пока такие задачи не подходят =)
Можно такую задачу, если конечно технически осуществимо:
На вход программы подается, вначале флаг, а потом набор данных. Если флаг установлен, программа должна сжать данные, если нет — распаковать. Для проверки программа вначале сжимает, а потом распаковывает несколько тестовых наборов, а суммарная степень сжатия или кол-во хоть как-то или более чем на сколько-то процентов сжатых образцов, дает количество очков.
Угу у меня была такая идея!
Но к сожалению, пока система не поддерживает двойное чтение данных. =\