Правила проведения Открытого Кубка по программированию (командные соревнования) За основу данных правил взяты традиционные правила проведения международных студенческих командных олимпиад и чемпионатов мира по программированию (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 да Определение победителей Полную и окончательную ответственность за проверку правильности представляемых решений несет Жюри. Все решения Жюри окончательны и обжалованию не подлежат. Команды ранжируются по числу решенных (т.е. принятых) задач. Команды, решившие одинаковое число задач, ранжируются по суммарному времени решения. Суммарное время решения определяется как сумма времени решения каждой принятой задачи. Время решения задачи определяется как время от начала соревнования до момента посылки решения, признанного правильным, плюс штрафные минуты за каждое забракованное решение. Задачи, не признанные решенными к моменту окончания соревнования, никакого вклада в суммарное время не дают (в том числе, и в виде штрафов за забракованные решения). Если один или несколько тестов признаны некорректными, решение о победителе принимает Жюри. Все промежуточные неофициальными. результаты, Объявление результатов победителей. объявленные Открытого Кубка в ходе производится соревнования в день являются награждения