Турнир Архимеда по программированию
- очная командная олимпиада по информатике.
Перед основным туром как правило проводится пробный тур, на котором участникам предлагаются
1-2 задачи для знакомства с рабочим местом и тестирующей системой. Продолжительность
тура определяется местными организаторами. Результаты пробного тура никак не учитываются при
подведении итогов турнира. Во время пробного тура допускается присутствие руководителей команд
и их общение со школьниками.
Продолжительность основного тура - 3 часа. На олимпиаде команде из
трёх человек предоставляется один персональный компьютер и предлагается решить 8-12 задач.
При подведении итогов учитываются только полностью решенные задачи. Участники в
таблице результатов упорядочиваются по убыванию количества решенных задач, а при равном
количестве задач - по возрастанию штрафного времени (см.ниже).
Написанные участниками решения сдаются в автоматизированную тестирующую систему.
Программа проверяется сразу (или в течение нескольких минут, если сервер перегружен),
на заранее подготовленном жюри, одинаковом для всех участников наборе примеров.
Если на каждом из примеров решение выдает правильный ответ, задача получает статус ОК
(решена верна). При этом к штрафному времени участника добавляется время в минутах
от начала турнира. Если на одном из тестов решение не выдает правильный ответ в требуемом
формате за указанное время, или программа выдает ошибку во время работы, тестирование
решения прекращается (на остальных тестах решение не тестируется). В этом случае
к штрафному времени прибавляется 20, а участнику сообщается номер теста, на котором
произошла ошибка, и указывается тип ошибки: Неправильный ответ, Превышено максимальное
время работы, Ошибка выполнения, Неправильный формат вывода и т.п. Сами тестовые
примеры до окончания олимпиады участникам не показываются.
В тестирующую систему сдается исходный текст программы (файл с расширением .pas,
.dpr, .c, .cpp и т.п.). Тестирующая система самостоятельно компилирует исходный текст
в исполняемый код, при ошибке на этом этапе участнику сообщается, что произошла
Ошибка компиляции, а также показывается протокол компиляции с указанием конкретной
ошибки. На штрафное время такие попытки не влияют. Также на штрафное время не влияют
попытки по данной задаче, сделанные ПОСЛЕ ее успешной сдачи.
Во время турнира участники могут использовать любые письменные материалы (книги, тетради
с записями, …), но не могут пользоваться никакими электронными устройствами
(мобильными телефонами, калькуляторами, плеерами, флешками итп), а также не имеют право
использовать интернет, кроме страницы сдачи решений в тестирующей системе.
Участники могут задавать вопросы по условиям через специальные интерфейс в тестирующей
системе. Вопросы должны быть сформулированы так, чтобы на них можно было ответить
«да» или «нет». Также участники могут обращаться к членам оргкомитета по вопросам,
связанным с функционированием компьютера.
Список языков программирования и сред разработки определяется местными организаторами
исходя из конфигурации компьютеров в местах проведения и возможностей тестирующей системы.
Как правило, в этот список входят языки паскаль (Delphi), C, C++, python. Также в этот список
при необходимости рекомендуется включить языки java, Visual Basic, perl, php.
Во всех задачах требуется написать консольное приложение. Входные данные считываются
с клавиатуры, а выходные данные выводятся на экран. Программа должна при всех допустимых
входных данных работать не более указанного времени (как правило, 1 сек) и использовать
память в размере, не большем 64М (включая память на хранение данных и бинарного кода программы).