Чемпионат Урала по программированию 2000
Версия для печати

Правила соревнований

Команда состоит из трёх студентов очной формы обучения 1-5 курсов, при этом только один участник является студентом 4-5 курсов и ни один из участников не является студентом последнего года обучения.

Соревнования проходят на IBM PC совместимых компьютерах в следующей конфигурации: процессор Intel 486-586, ОЗУ не менее 8 Мб, операционная система MS-DOS версии 6.0-7.0 и выше. Все компьютеры подключены к сети Windows NT.

Используются следующие системы программирования: Borland C, Borland Pascal.

Эти системы будут полностью доступны каждой команде во время соревнований, за исключением библиотеки Turbo Vision. Категорически запрещается использовать какие-либо другие программы и библиотеки, а также личные дискеты и другие электронные носители информации.

Соревнования проводятся в два тура, результаты которых суммируются.

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

Участники могут приносить с собой только чистые листы бумаги, инструменты для письма и англо-русские словари. Запрещается приносить и использовать книги, справочники, руководства, электронные словари, листинги программ и т.д. Также запрещается использовать информацию в электронном виде, личные компьютеры или калькуляторы.

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

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

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

В решениях задач запрещено использовать:

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

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

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

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

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

Возможные типы ошибок:

тип ошибки

номер теста, на котором произошла ошибка

когда возникает

возможная причина

ошибка компиляции

не сообщается

в результате компиляции не создан исполняемый файл

синтаксическая ошибка в программе, неправильное расширение файла

неверный ответ

сообщается

ответ неверен

неверный алгоритм решения

превышение предела времени

сообщается

программа превысила установленный в условии предел времени

неэффективное решение: ошибка в программе

ошибка исполнения

сообщается

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

ошибка исполнения (runtime error): программа на языке С не завершается оператором return 0: ненулевой код возврата явно указан в программе

нарушение формата вывода

сообщается

программа проверки не может проверить выходные данные, поскольку их формат не соответствует описанному

неверный формат вывода: выходной файл имеет неправильное имя или отсутствует

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

  • тесты с 1 по 8 прошли проверку;
  • на более сложном, чем предыдущие восемь, девятом тесте программа превысила предел времени.

В этом случае можно заключить, что алгоритм правильный, но неэффективный.

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

Выигрывает команда, правильно решившая наибольшее число задач. В случае равенства числа решенных задач выигрывает команда с наименьшим штрафным временем. Штрафное время - это суммарное время решения задач с добавлением 20 минут за каждое неверное решение. Каждая попытка сдать задачу после того, как решение для данной задачи уже было зачтено, считается “неверным решением” и приводит к дополнительному штрафному времени.

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

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

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