Правила проведения Открытого Кубка по программированию

advertisement
Правила проведения Открытого Кубка по программированию
(командные соревнования)
За основу данных правил взяты традиционные правила проведения международных
студенческих командных олимпиад и чемпионатов мира по программированию (ACM).
Настоящий документ представляет собой предварительную версию Правил.
Окончательная версия будет выдана командам и руководителям при регистрации на
месте проведения соревнования.
Участники Открытого Кубка по программированию
Команда состоит из 3-х человек. Участниками команды могут быть студенты и аспиранты.
Проведение Открытого Кубка по программированию
Каждая команда получает в свое распоряжение один IBM PC совместимый компьютер
конфигурации не хуже Intel Pentium 3, ОЗУ не менее 128 МБ, работающий под
управлением операционной системы Windows 2000. Составление исходных текстов
решений и их отладка осуществляется участниками с использованием следующих сред
программирования:
Язык
Разрядность
16 бит
32 бита
Pascal
Borland Pascal 7.0
Free Pascal 1.0.6
C/C++
Borland C/C++ 3.1
Minimal GNU for Win32 2.0
Жюри не гарантирует, что решения, разработанные с использованием 16-битных
сред программирования, будут работать в 32-битной среде, используемой при
тестировании.
Командам предлагается от 6 до 12 задач. Задачи предлагаются на русском языке.
Продолжительность тура составляет 5 часов. Жюри имеет право продлить соревнования
в случае каких-либо непредвиденных обстоятельств.
Участники могут приносить с собой и использовать любые источники информации на
бумажном носителе: книги, справочники, листинги программ и пр. Запрещается
использование любых электронных средств хранения или передачи информации:
портативных компьютеров, калькуляторов, пейджеров, сотовых телефонов.
Во время проведения соревнования взаимодействие команд и Жюри осуществляется с
помощью автоматизированной системы. Для знакомства с техникой, системами
программирования и системой проведения соревнования проводится пробный
(тренировочный) тур.
Решение задач
Во время соревнования команды решают предложенные задачи. Решением является
программа (файл с исходным текстом), написанная на одном из разрешенных языков
программирования. Команда может решать задачи на различных языках
программирования.
Входные данные подаются программе в стандартном потоке ввода (stdin для программ
на языках Cи и Cи++, cin для программ на языке Си++, input для программ на языке
Паскаль). Программа должна выводить ответ на стандартный поток вывода (stdout для
программ на языках Cи и Cи++, cout для программ на языке Си++, output для программ
на языке Паскаль). Вывод в стандартный поток ошибок игнорируется. Если явно не
оговорено в условии задачи, формат ввода предполагается свободным, то есть элементы
входных данных могут отделяться друг от друга произвольным количеством пробельных
символов.
Команда может обратиться к Жюри с вопросом по условию какой-либо задачи. Вопрос
должен быть сформулирован на русском языке и предполагать ответ "Да" или "Нет".
Жюри может ответить на поставленный вопрос "Да", "Нет", "См. Условие", если считает,
что ответ на поставленный вопрос содержится в условии задачи, и "Без комментариев".
Жюри может разослать ответ на поставленный командой вопрос всем участникам
соревнования.
Проверка решений
Проверка представленных решений проводится во время соревнований. Участники
посылают решения в Жюри с помощью предоставленного программного обеспечения.
При посылке решения команда выбирает компилятор, который будет использован Жюри
для компиляции решений. Информация о точном наборе ключей компиляции будет
предоставлена участникам перед началом соревнований.
Решение проверяется путем запуска на наборе тестов, который недоступен участникам и
является одинаковым для всех команд. Решение засчитывается в том случае, если оно
выдает верные ответы на все тесты. Тестирование производится автоматически, поэтому
программы должны в точности соблюдать форматы входных и выходных файлов,
описанные в условии каждой задачи. Если не оговорено отдельно, все входные данные
предполагаются корректными и удовлетворяющими всем ограничениям, указанным в
условии задачи.
В условии каждой задачи может быть указано максимальное время выполнения для
одного теста. Если на одном из тестов программа превысила это время, решение
считается неверным.
По мере готовности команда посылает свои решения в Жюри для проверки. После этого
команда может продолжать работу над другими задачами. Результаты проверки
посланного решения будут доступны команде немедленно по завершении проверки.
Команде сообщается, зачтено решение или нет. Если решение не зачтено, сообщается
тип ошибки и номер теста, на котором произошла ошибка.
сообщение
OK
Compilation
error
номер
ошибки
нет
нет
Wrong answer да
Presentation
error
да
когда возникает
возможная причина
решение зачтено
Программа работает верно
компиляция программы 1. в программе допущена
завершилась с ошибкой синтаксическая
или
семантическая
ошибка
2. неправильно указан язык
ответ не верен
1.
ошибка
в
программе
2. неверный алгоритм
программа проверки не 1. Неверный формат вывода
может
проверить 2. Программа не печатает
выходные данные, так результат
Time-limit
exceeded
как
их
формат 3. Лишний вывод
не
соответствует
описанному
программа
превысила 1.
Ошибка
в
программе
установленный
2. Неэффективное решение
в
условии
лимит
времени
Программа завершила 1.
Ошибка
выполнения
работу с ненулевым 2. Программа на языке C/C++
кодом возврата
не завершается оператором
return
0
3. Ненулевой код возврата
указан явно
да
Run-time error да
Определение победителей
Полную и окончательную ответственность за проверку правильности представляемых
решений несет Жюри. Все решения Жюри окончательны и обжалованию не подлежат.
Команды ранжируются по числу решенных (т.е. принятых) задач. Команды, решившие
одинаковое число задач, ранжируются по суммарному времени решения.
Суммарное время решения определяется как сумма времени решения каждой принятой
задачи. Время решения задачи определяется как время от начала соревнования до
момента посылки решения, признанного правильным, плюс штрафные минуты за каждое
забракованное решение. Задачи, не признанные решенными к моменту окончания
соревнования, никакого вклада в суммарное время не дают (в том числе, и в виде
штрафов за забракованные решения).
Если один или несколько тестов признаны некорректными, решение о победителе
принимает Жюри.
Все промежуточные
неофициальными.
результаты,
Объявление результатов
победителей.
объявленные
Открытого
Кубка
в
ходе
производится
соревнования
в
день
являются
награждения
Download