FAQ

FAQ — frequently asked questions, то есть "ответы на часто задаваемые вопросы". Здесь вы найдет ответы на самые важные вопросы. Дополнительно смотрите FAQ++.

El Judge — Что это такое?

El Judge (Electronic Judge) — автоматическая система проверки задач по программированию. Это значит, что здесь есть архив задач по программированию на тему "Напишите программу, которая на вход получает то-то должна сделать то-то и вывести то-то", и эти задачи можно сдавать — посылать код, который будет автоматически проверятся.

Есть ли другие подобные системы?

Да, есть множество подобных систем. Например:

acm.timus.ru neerc.ifmo.ru acm.uva.es ace.deloc.com acm.sgu.ru topcoder.com

Как регистрирваться и посылать решения?

После регистрации вы можете войти в систему и начать сдавать задачи.

Сдача задачи заключается в следующем. Вы пишете программу на одном из разрешенных языков программирования (C/C++/Free Pascal/Perl/Python/Ruby/Schema/Haskel/Lua), которая по Вашему мнению решает одну из задач, и посылаете её на проверку El Judge, используя web interface. После этого Вам на email приходит результат проверки. Кроме того, результаты можно смотреть на странице Статус online.

Какие бывают результаты проверки и что они значат?

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

Accepted Это значит "Ваше решение верно!!!". Вам действительно удалось решить эту задачу или El Judge ошибся в вашу пользу.
Wrong answer Ваша программа, по крайней мере, на одном из тестов выдает неправильный ответ. Номер этого теста прилагается. Все тесты с меньшим порядковым номером пройдены успешно.
Time Limit Ваша программа, по крайней мере, на одном из тестов работает дольше, чем можно. Ммаксимальное время работы на одном тесте указано в условии задачи, по умолчанию оно равно 5 секунд. Номер теста, на котором впервые превышено это время, прилагается.
Presentation error Ваша программа, по крайней мере, на одном из тестов выводит данные, формат которых не соответствует формату выходных данных, указанных в задаче. Номер этого теста прилагается. Все тесты с порядковым номером меньше этого теста пройдены с положительным результатом. Например, требуется вывести какое то число, а ваша программа на этом тесте вывела латинские буквы.
Compilation error Ваша программа не компилируется. Это может быть вызвано следующими причинами:
  • в Вашей программе ошибка,
  • вы выбрали не тот язык, когда посылали решение,
  • вы используете компилятор, отличный от того, который использует El Judge.
Runtime error Ваша программа вернула не нулевой код возврата. Это может вызвано одной из двух причин:
  • Ваша программа выполнила недопустимую операцию во время выполнения,
  • Ваша программа написана на C/C++ и Вы заканчиваете выполнение функции main с кодом возврата не равным 0.
System error Эта ошибка не должна появлятся. Она означает, что во время проверки Вашего решения в системе возникли какие-то ошибки (система не может найти необходимых файлов, или при ыполнении проверяющей программы возникла ошибка исполнения). Кроме того, в случае ElJudge, она может означать Memory Limit Exceeded.

Как добавлять свои задачи?

Если у Вас есть интересная задача и Вы бы хотели, чтобы она была добавлена в архив ElJudge, то нужно сделать следующее: прислать сюда письмо содержащее 1) описание задачи, 2) тесты 3) checker 4) решение. Если у Вас есть только описание и решение, то тоже неплохо. Но в идеале должны присутствовать все четыре компоненты.

  1. Описание должно быть представлено в следующем формате (см. problem samples):
    [lang=en]
    [title]
    Название задачи на английском
    [author]
    Информация об авторе (или откуда взято) на английском
    [timelimit]
    число секунд
    [memorylimit]
    количество килобайт
    [body]
    Описание на английском
    [input]
    Пример входа 1
    [output]
    Пример выхода 2
    
    [input]
    Пример входа 1 
    [output]
    Пример выхода 2
    
    ...
    
    [lang=ru]
    [title]
    Название на русском
    [author]
    Информация об авторе (или откуда взято) на русском.
    [body]
    Описание на русском
    

Как писать решения на Java?

Файлу, который Вы послыаете на проверку, назначается имя "Main.java". Соответственно Ваш главный класс (содержащий функцию main) должен называться Main и объявлятся в безымянном пакете. Также хотелось бы обратить Ваше внимание, что на сервере установлена java 1.5, так что Вы можете использовать все преимущества этой версии (например, класс Scanner, улучшенный for, шаблоны, и т.п.) Также советуется почитать эталонные решения. Учтите только, что т.к. Scanner долго работает на больших файлах (например, в которых 100000 чисел), так что используйте класс BufferedReader и StringTokenizer.


© acm.mipt DevGroup
The page was generated in 140ms

SW soft NIX
ID = 54.221.9.6