Правила соревнований по программированию

Содержание

1. Аппаратное и программное обеспечение

2. Схема проведения

2.1 Основные правила

2.2 Ограничения на текст решений

2.3 Проверка решений

2.4 Возможные типы ошибок в решениях

2.5 Вопросы по условиям задач

2.6 Подведение итогов

2.7 Апелляции

3. Проверяющая система

3.1 Технические детали

3.2 Программа submit

3.3 Программа monitor

4. Пробный тур

1. Аппаратное и программное обеспечение

Соревнования проходят на IBM PC совместимых компьютерах в следующей конфигурации:

  • процессор Intel 386-586, ОЗУ не менее 4Мб,
  • операционная система MS- DOS версии 6.2х-7.0,
  • все компьютеры подключены к сети "Novell Netware".

Используются следующие системы программирования: Borland C++ 3.1, Borland Pascal 7.0.
Эти системы будут полностью установлены на каждом компьютере без поддержки библиотеки Turbo Vision. Примеры и встроенная система помощи также полностью доступны для участников.

Категорически запрещается использовать:

  • какие-либо другие программы и библиотеки,
  • личные дискеты и другие электронные носители информации.

2. Схема проведения

2.1 Основные правила

Команде, состоящей из трех студентов высшего учебного заведения, предоставляется на соревнованиях один компьютер. Командам будет предложено для решения не менее 6 задач. Продолжительность тура составляет 5 часов. Жюри имеет право продлить соревнования в случае каких-либо непредвиденных обстоятельств.

Можно приносить с собой и использовать ТОЛЬКО:

  • словари (англо-русский и т.п.),
  • чистые листы бумаги и инструменты для письма.

Запрещается приносить и использовать:

  • книги, справочники, руководства, электронные словари, листинги программ и т.д.
  • информацию в электронном виде, личные компьютеры или калькуляторы.

Во время соревнований команды решают предложенные задачи. Решением является программа (файл с исходным текстом), составленная на одном из разрешенных языков программирования. Программа не должна включать в себя других файлов или модулей. Команда может решать разные задачи на различных языках программирования.

Проверка представленных решений проводится во время соревнований. Участники посылают решения в жюри с помощью предоставленного программного обеспечения. Жюри компилирует полученное решение с помощью пакетных компиляторов ТРС.ЕХЕ и ВСС.ЕХЕ, поэтому все опции компиляции, отличные от умалчиваемых значений, должны быть указаны в исходном файле.

Программы на С/С++ компилируются под модель памяти "Large", совпадающую с моделью памяти, используемой программами на Паскале. Входные данные для каждой задачи расположены в одном входном файле, имя которого задано в тексте задачи. Программа должна формировать выходной файл с заданным именем. Входные и выходные файлы располагаются в текущей директории DOS.

2.2 Ограничения на текст решений

В решениях задач запрещено:

  1. Выводить какую-либо информацию на экран.
  2. Использовать расширенную или дополнительную память и защищенный режим процессора.
  3. Использовать чтение и запись векторов прерываний.
  4. Создавать и работать с любыми файлами, за исключением тех, которые явно указаны в условии задачи (входные и выходные файлы).
  5. Работать с подкаталогами.
  6. Любое использование сетевых средств.
  7. Использовать любые другие средства или действия, которые могут нарушить работу программного обеспечения олимпиады.

Проверяющие программы используют различные методы контроля за соблюдением данных требований. Команда, нарушившая эти условия, дисквалифицируется.

2.3 Проверка решений

Решение проверяется путем запуска на наборе тестов, который недоступен участникам и является одинаковым для всех команд. Решение засчитывается в том случае, если оно выдает верные ответы на все тесты.

Тестирование производится автоматически, поэтому программы должны в точности соблюдать форматы входных и выходных файлов, описанные в условии каждой задачи. Если не оговорено отдельно, все входные данные предполагаются корректными и удовлетворяющими всем ограничениям, указанным в условии. Для каждой задачи указывается максимальное время выполнения для одного теста. тестов программа превысила это время, решение считается неверным.

По мере готовности команда посылает свои решения в жюри для проверки. После этого команда может продолжать работу над другими задачами. После того, как жюри проверит решение, команда получает сообщение с результатами тестирования. Это сообщение появляется на экране и дублируется на специальном бланке. Команде сообщается, зачтено решение или нет. Если решение не зачтено, сообщается тип ошибки и номер теста, на котором ошибка произошла.

Пример "Листа тестирования"

Команда N 1
Задача: 1
Попытка N 2
Время 12:03
Результат работы

Неверный ответ в тесте N 3

2.4 Возможные типы ошибок в решениях

Проверяющая система может возвратить одну из следующих пяти ошибок:

N | Тип ошибки | Указан номер теста | Когда возникает ошибка | Возможная причина ошибки
1. | Ошибка компиляции (compilation error) | нет | В результате компиляции не создан исполняемый файл. | 1) Синтаксическая ошибка в программе. 2) Неправильное расширение файла с решением, например "срр" для программы на Паскале.
2. | Неверный ответ (wrong answer) | да | Ответ не верен. | Неверный алгоритм решения.
3. | Превышение предела времени (time limit exceeded) | да | Программа превысила установленный в условии предел времени | 1) Неэффективное решение. 2) Ошибка в программе.
4. | Ошибка исполнения (runtime error) | да | Программа завершила работу с ненулевым кодом возврата | 1) Ошибка исполнения (Runtime error). 2) Программа на языке С/С++ не завершается оператором "return 0". 3) Ненулевой код возврата явно указан в программе.
5. | Нарушение формата вывода (presentation error) | да | Программа проверки не может проверить выходныданные, т.к. их формат не соответствует описанному. | 1) Неверный формат вывода. 2) Выходной файл имеет неправильное имя или отсутствует.

Все тесты выполняются в одном и том же порядке (обычно) с возрастанием сложности. Номер ошибочного теста, указываемый в результатах проверки, есть номер первого теста, не прошедшего проверку. Например, если жюри сообщило, что "Превышен предел времени на тесте номер 9", это означает, что:

  • Тесты с 1 по 8 прошли проверку.
  • На более сложном, чем предыдущие восемь, девятом тесте программа превысила предел времени В этом случае можно заключить, что алгоритм правильный, но не эффективный.

Если жюри зафиксировало "Нарушение формата вывода на тесте номер 1", команда может предположить, что она решила задачу, но послала ее на проверку вместо другой.

2.5 Вопросы по условиям задач

Во время соревнований участники могут задавать вопросы по условиям задач. Вопрос должен быть составлен в форме, предполагающей ответы "ДА" или "НЕТ". Команда заполняет "Лист вопроса" и передает его жюри. Когда жюри ответит на вопрос, команда получит этот "Лист" с ответом обратно. Если вопрос поставлен некорректно или ответ прямо следует из условия задачи, жюри отвечает "Без комментариев". Если жюри согласно, что в условии присутствует неясность или ошибка, то всем участникам делается соответствующее объявление.

Пример "Листа вопроса"

Команда | N 1
Задача | A
Вопрос | Результат работы программы в примере правильный?
Ответ жюри
[ ] ДА [ ] НЕТ [X] БЕЗ КОММЕНТАРИЕВ

2.6 Подведение итогов

Выигрывает команда, правильно решившая наибольшее число задач. В случае равенства числа решенных задач, выигрывает команда с наименьшим штрафным временем. Штрафное время - это суммарное время решения задач с добавлением 20 минут за каждое неверное решение (учитывается только для решенных задач). Каждая попытка сдать задачу ПОСЛЕ того, как решение для данной задачи уже было зачтено, считается "неверным решением" и приводит к дополнительному штрафному времени.

Во время соревнований участники и гости могут просматривать текущие результаты всех команд.

Пример таблицы результатов:

Команда | A | B | C | D | E | F | Решено | Время | Место
Команда 1 | + | + | +1 | +3 | +1 | +1 | 6 | 1093 | 1
Команда 2 | + | + | +6 | + | +3 | +1 | 6 | 1363 | 2
Команда 3 | + | + | +4 | + | +1 | -2 | 5 | 720 | 3
Команда 4 | + | . | +3 | +3 | +1 | -6 | 4 | 839 | 4
Команда 5 | + | . | . | +3 | +5 | . | 3 | 895 | 5
Команда 6 | + | . | . | -2 | + | . | 2 | 307 | 6
Команда 7 | + | . | -2 | . | +1 | . | 2 | 378 | 7
Команда 8 | + | . | +5 | . | . | -3 | 2 | 659 | 8
Команда 9 | + | . | -2 | . | -4 | -2 | 1 | 38 | 9

+ означает, что программа принята, а число - количество отвергнутых вариантов программы.

По традиции проведения данных соревнований для повышения интереса к церемонии награждения жюри прекращает обновление текущих результатов для участников и гостей за один час до конца соревнований.

Во время проведения состязаний участники, могут общаться ТОЛЬКО с членами своей команды и представителями жюри и организационного комитета соревнований. За нарушение правил проведения соревнований команда может быть дисквалифицирована.

2.7 Апелляции

Жюри обладает исключительным правом определения правильности присланных решений, определения победителей и дисквалификации команд. Жюри разбирает вопросы, возникающие в результате непредвиденных событий и обстоятельств. Решения жюри окончательны и обжалованию не подлежат. Всем участникам будут предоставлены дискеты для резервного копирования файлов. Жюри не несет ответственности за сохранность файлов участников.

Набор тестов, на которых жюри проверяет решения, не предоставляется участникам даже после окончания олимпиады. В течение трех дней после соревнований команда может направить в жюри апелляцию в случае обнаружения неверного штрафного времени, потери посланного в жюри решения, и т.п. Если жюри признает правильность поданной апелляции, оно может принять решение об изменении состава команд, направляемых на финальные соревнования. Призы в этом случае не перераспределяются. Жюри сообщает о своем решении команде в любом случае.

3. Проверяющая система

3.1 Технические детали

Компьютеры участников подключены к сети Novell Netware. Перед началом соревнований каждой команде будет предоставлено входное имя и пароль для работы в сети. Каждой команде для хранения своих файлов будет выделен сетевой каталог, невидимый для других участников.

По умолчанию, стандартный путь "PATH" в системе MS-DOS будет установлен на следующие каталоги:

  • Директории, содержащие файлы операционной системы и сетевые утилиты.
  • Директорию BIN системы Borland Pascal 7.0
  • Директорию BIN системы Borland C++ 3.1
  • Директорию, содержащую программы проверяющей системы.

3.2 Программа submit

Решение отправляется в жюри командой SUBMIT (запускается из командной строки MS-DOS) При этом диалог с программой SUBMIT выглядит примерно так:

To submit a problem for checking, choose your problem ID,
To exit (if you run this program by mistake) press ENTER
Your choice: a
Now you should enter the filename of your solution. It must be a single source file with one of allowed extension: pas cpp с
Your choice: a.pas
Please, confirm that you submit problem A, file "a.pas"
Type YES if you agree or anything else if you DO NOT
Your choice: yes

На запрос SUBMIT нужно ввести идентификатор задачи и имя файла с исходным текстом решения. Имя файла может быть произвольным. Расширение определяет используемый язык программирования и компилятор.

Допустимы три расширения:

Расширение | Язык программирования | Компилятор
PAS | Pascal | ТРС.EXE из пакета Borland Pascal 7.0
CPP | С++ | ВСС.ЕХE из пакета Borland С++ 3.1 (модель памяти Large)
С | С | ВСС.EХЕ из пакета Borland С++ 3.1 (модель память Large)

Когда жюри проверит решение, на Вашем экране появится сообщение с результатом проверки, а еще через некоторое время команда получает распечатанный бланк этим результатом.

3.3 Программа monitor

Для просмотра предварительных результатов олимпиады можно использовать команду MONITOR. Обновление текущих результатов для участников и гостей прекращается за один час до конца соревнований.

4. Пробный тур

Обычно за 1 день до соревнований проводится пробный тур. Во время пробного тура участники знакомятся с компьютерами и проверяющим программным обеспечением. Для решения на пробном туре обычно предлагаются 1-2 простые задачи. Результаты пробного тура нигде не учитываются, однако нарушение правил на пробном туре может повлечь дисквалификацию команды на основной тур соревнований.

Главная страница | О соревнованиях | Правила соревн | Ссылки
Библиотека | Архив задач | Летопись соревн |

Изменено 12-Ноя-01 Авторские права (с) М.Л. Цымблер