Олимпиадное программирование
Сахалинская область - лидер среди субъектов Российской Федерации по внедрению цифровизации и информатизации во все сферы, в том числе - в сферу государственного и муниципального управления.
В данном состязании участникам необходимо продемонстрировать свои навыки в программировании и за отведенное время решить наибольшее количество различных задач на любом доступном языке программирования.
Участникам предоставляются задания, а также - входные параметры для проверки корректной работы созданного алгоритма, при этом участники в домашних условиях могут пользоваться любой средой разработки и любым языком программирования.
Данное состязание является индивидуальным и доступно для участия в дистанционном формате (требования к дистанционному формату участия).
1. Описание задания
1.1. Перед началом соревновательной части участники получают доступ в личный кабинет, проверяют работоспособность всех необходимых разделов личного кабинета, а также видят количество заданий и максимлаьный балл, который можно получить за решение каждого из предложенных заданий.
1.2. В момент старта соревновательного таймера участники получают доступ к текстовому (и графическому, при необходимости) описанию каждой из задач, а также набор входных данных
1.3. В ходе соревнований участники самостоятельно разрабатывают алгоритм работы программы, используют входные данные и получают результат работы программы.
1.4. Результат работы программы для всех входных данных, а также исходный код программы необходимо прикрепить в личном кабинете и отправить на проверку экспертам Чемпионата.
2. Правила состязания
2.1. Компьютерная техника, необходимая для выполнения конкурсного задания, не предоставляется организатором Чемпионата, участники используют собственное программное и аппаратное обеспечение для работы.
2.2. Выбор используемого языка программирования для решения поставленных задач, а также парадигм программирования остается на усмотрение участника.
2.3. Состязание является индивидуальным.
2.4. Максимальное время выполнения задания составляет 5 часов.
2.5. В ходе соревнований у участников могут быть следующие группы заданий:
• использование волновых алгоритмов;
• использование методов половинного деления;
• работа с ориентированными графами;
• побитовые операции над числами;
• криптографические алгоритмы.
2.6. В ходе соревнований у участников может быть следующий тип решения задач:
• задачи с полным текстовым описанием алгоритма;
• задачи на оптимизацию алгоритма;
• задачи на восстановление алгоритма.
3. Подсчет баллов
3.1. Подсчет баллов происходит в заочном формате, с помощью оценки правильноcти полученных результатов на основании предоставленных участникам входных данных.
3.2. При необходимости, оргкомитет Чемпионата оставляет за собой право применять дополнительные входные наборы данных для проверки результатов работы программы.
3.3. Участник может получить дополнительные баллы за качество программного кода, например за:
• Универсальность построенного алгоритма (отсутствие избыточных условных конструкций, разделяющих и/или классифицирующих входные данные, если иное не оговорено в задании;
• Использование паттернов программирования;
• Структурирование и модульность кода;
• Наличие комментариев в коде программы.
3.4. Оценка качества программного кода происходит в каждом отдельном задании, представленном участником.
3.5. При равенстве баллов участников, преимущество имеет участник, раньше завершивший (отправивший на проверку) исходные коды и выходные результаты программы при условии равности выполненного участниками объема работ относительно задания.
4. Пример задания
Данное задание относится к разряду заданий, в котором необходимо восстановить программный алгоритм. В этом случае участникам предоставляются примеры входных и выходных данных, а зачала участников - восстановить алгоритм, вещущий от входных данных к результатам. В тексте задания также будут присутствовать входные параметры (без выходных), которые необходимо будет провести через алгоритм и в качестве ответа на задание вписать результат работы программы.
Входные параметры | Выходные параметры |
---|---|
a = 15, b = 16, c = 102, d = 554 | a = -121, b = -52, c = 51, d = 72 |
a = 100, b = -1, c = 600, d = 13 | a = -801, b = -301, c = 300, d = 512 |
a = -100, b = 56, c = 1000, d = -1 | a = 799, b = -501, c = 500, d = -1024 |
a = 50, b = 50, c = 50, d = 50 | a = -401, b = -26, c = 25, d = 384 |