Московская олимпиада по информатике на сайте www.olympiads.ru |
Новости | Об олимпиаде | Личная олимпиада | Командный тур | Пробный интернет-тур | Заочный тур | Сборы | Странички других лет | www.olympiads.ru |
|
Московская городская олимпиада школьников по информатике,
2003/04 учебный год
|
Язык | Система разработки | Примечания |
Pascal | Borland Pascal 7.0 | - |
Pascal | Free Pascal 1.0.10 | жюри оставляет за собой право по техническим причинам исключить данную систему из состава доступных систем разработки |
C/C++ | Borland C++ 3.1 | - |
C/C++ | GNU C/C++ 3.2 (DJGPP v2.03) | жюри оставляет за собой право по техническим причинам исключить данную систему из состава доступных систем разработки |
Basic | QBasic 4.5 | жюри не гарантирует, что любую задачу олимпиады можно полностью решить, используя данную систему разработки |
Во время тура разрешается пользоваться любой литературой и личными записями. Категорически запрещается пользоваться любыми носителями информации в электронном виде (дискетами, CD и DVD дисками, USB flash drive'ами и др.), электронными устройствами (калькуляторами, электронными записными книжками, собственными компьютерами) и средствами связи (мобильные телефоны, пейджеры), общаться с руководителями команд.
Во время тура участники решают предложенные задачи. Решением задачи является программа, написанная на одном из допустимых языков программирования. Программа не должна содержать вспомогательных модулей или файлов. Разные задачи можно решать на разных языках программирования.
Все задачи предполагают, что входные данные расположены в одном или нескольких входных файлах, имена которых определены в тексте задачи. Программа должна формировать выходной файл (или несколько файлов) с заданными именами. Все входные и выходные файлы располагаются в текущей директории.
В задачах, в которых из входного файла вводится последовательность чисел, числа могут разделяться одним или несколькими пробелами и (или) символами перевода строки. После последнего числа в файле также могут идти переводы строки и (или) пробелы. Во всех задачах (если иное не оговорено в условии) в конце строк могут идти незначащие пробелы, после последней строки с данными могут быть незначащие пустые строки.
Проверка решений производится во время соревнований. С помощью специальных программ команды посылают свои решения жюри. Размер исходного кода посылаемого решения не должен превышать 64 кб. Жюри транслирует программы, используя компиляторы командной строки, и проверяет их. Участники должны поместить все директивы компилятора в файлы решений.
По мере готовности своих решений команда посылает их жюри для проверки. После этого команда может продолжать работу над другими задачами. После того, как жюри проверит решение (проверка занимает около 1-5 минут), команда получает сообщение с результатами тестирования.
В течение первых 4-х часов тура участники могут видеть текущие результаты всех команд. За час до конца тура результаты в общей таблице перестанут обновляться, о чем участникам будет сообщено. Однако ответы на посланные на проверку решения по-прежнему будут приходить и полученные ими баллы будут учитываться в окончательных результатах олимпиады.
После проверки участникам сообщается количество прошедших тестов, количество набранных баллов на текущей попытке, результат по задаче:
Тип сообщения | Описание | Возможная причина |
OK | Задача прошла все тесты | Решение правильное |
Partial Solution | Частичное решение: не прошли некоторые тесты | См. следующую таблицу |
Compilation Error | В результате компиляции не создан исполняемый файл | Синтаксическая ошибка в программе. Указан неверный язык программирования (например C для программы на C++) |
Также после проверки будет доступен просмотр более подробной информации, где сообщается результат проверки по каждому тесту:
Тип сообщения | Описание | Возможная причина |
OK | Тест пройден | Программа на этом тесте работает верно. |
Wrong Answer | Ответ не верен | Ошибка в программе. Неверный алгоритм решения. |
Presentation Error | Программа проверки не может проверить выходные данные, т.к. их формат не соответствует описанному в условии | Неверный формат вывода. Выходной файл имеет неправильное имя, или отсутствует. Программа не печатает результат. В выходной файл выдается лишняя информация. Программа не закрывает выходной файл. |
Time Limit Exceeded | Программа превысила установленный в условии предел времени. | Неэффективное решение. Ошибка в программе. |
Runtime Error | Программа вышла с ненулевым кодом завершения либо произошел аварийный выход программы (crash). В этом случае результат работы программы не проверяется | Ошибка выполнения. Программа на языке C/C++ не завершается оператором 'return 0'. Ненулевой код возврата указан в программе. Программа превысила установленный в условии предел памяти. |
Команда может исправлять ошибки в своем решении и посылать его на проверку не более 25 раз по каждой задаче.
Время тестирования решения на каждом тесте и размер доступной памяти ограничены, эти ограничения будут указаны в формулировках задач. Указанные ограничения по памяти включают всю память, используемую программой, в том числе память под код программы, системные нужды и т.д.
В решениях задач запрещено использовать:
Решение должно выдавать одинаковые ответы на одинаковые тесты, вне зависимости от времени запуска и программного окружения. Жюри вправе произвести неограниченное количество повторных тестирований программы участника и выбрать наихудший результат по каждому из тестов.
Во время тура участники могут общаться только с членами своей команды, представителями жюри и дежурными по аудиториям.
За нарушение правил олимпиады команда может быть дисквалифицирована.
Жюри обладает исключительным правом определения правильности прохождения тестов, выставления оценок, определения победителей и дисквалификации участников. Жюри разбирает вопросы, возникающие в результате непредвиденных событий и обстоятельств. Решения жюри окончательны и обжалованию не подлежат. Апелляция не проводится.
Решение задачи проверяется на заранее подготовленном жюри наборе тестов, одинаковом для всех участников. Каждый тест оценивается некоторым количеством баллов. Дополнительные баллы (от 10 до 15 в зависимости от задачи) команда получает, если ее решение проходит все тесты. Каждая задача оценивается суммарно 50 баллами. За каждую дополнительную попытку сдачи задачи вычитается 2 балла. При этом результат команды по задаче (баллы, которые получает команда за задачу) равен максимуму из всех попыток команды по этой задаче.
Например, если после первой попытки команда получила 16 баллов, то результат равен 16. Если после второй попытки решение набрало лишь 10 баллов, то результат по-прежнему 16. Пусть после третьей попытки решение набрало 26 баллов, тогда результат команды 22, так как 4 балла вычитается за предыдущие попытки. Если после четвертой попытки решение пройдет все тесты, то результат будет равен 44: из 50 баллов вычитаются по 2 балла за каждую из трех дополнительных попыток.
Команды ранжируются по сумме баллов за все задачи.