Блог пользователя ivan.popelyshev

Автор ivan.popelyshev, 14 лет назад, По-русски

Вступление

Каждый тренер школьных и студенческих команд довольно быстро приходит к мысли о своей системе для проведения контестов. Можно разобраться с e-judge или pcmc-2, можно вообще сделать что-то своё (например contester или acmp), но в любом случае для создания нового контеста надо

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

Главная часть

Во второй половине 2008-ого года Виктор Виноградов из Ярославского Государственного Университета aka Fly разработал простую систему для проведения контестов, названную ACM Server. Создание контестов в ней сводится лишь к одному пункту: найти задачи.
Кроме самой системы, которая состоит из одного exe-файла и является web-сервером, загружается набор плагинов. Каждый плагин позволяет добавить в контест задачи с определённого интернет-архива. При сдаче решения система перенаправляет его на один из интернет-архивов и следит за состоянием сабмита. Настройка плагинов заключается в заполнении полей логина/пароля для конкретного сервера.
На данный момент можно использовать задачи из 9 известных архивов задач.
Зарубежные сайты:
UVa Online Judge
ACM ICPC Live Archive
Sphere Online Judge
PKU JudgeOnline
TJU Online Judge
HIT Online Judge System
Сайты где есть и русские и английские условия задач:
Timus Online Judge
MIPT El Judge
Saratov SU :: Online Contester
"Школа программиста" acmp.ru
 

Технические мелочи

c SVN можно скачать исходники системы, плагинов и даже написанный мной плагин для Дистанционной подготовке по информатике (warning: админы moodl'а не любят этот плагин, в прошлом году я получил бан. тем не менее это единственный плагин для e-judge). Те кто всё-таки хотят добавить собственных задачек со своими тестами могут использовать Localtest plugin на свой страх и риск.

Также можно скачать виртуальные контесты на основе ACM ICPC World Finals мира разных лет.

Для запуска системы под линуксом можно использовать wine.

Где используется.

Система хорошо подходит для тех кто для тренировки решает много задач с интернет-архивов: удобно иметь все решённые тобой задачи в одном месте, можно даже разложить по тематическим контестам.

Система активно используется для тренировок в ЯрГУ и для дорешивания задачек школьниками моего родного города Фрязино. Судя по теме на форумах топкодера и по письмам которые приходят разработчику, систему используют и за пределами нашей родины: пример.

Известные проблемы.

В интернет-архивах используются различные компиляторы, различные ключи к ним. На некоторых установлена java старой версии, а на некоторых нет паскаля. Поэтому, используя данную mashup-систему надо помнить об особенностях того или иного архива. Время от времени приходится передёргивать плагины которые чувствительны к потере сессии (год назад такие были, сейчас вроде нету). Так как система отсылает все решения под одним аккаунтом, при активном использовании могут возникнуть проблемы с администрацией определённых архивов.
  • Проголосовать: нравится
  • +12
  • Проголосовать: не нравится

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Активно используем эту систему для тренировок в нижегородском Политехе. Существенный недостаток - эта штука создает тонны логов, поэтому пришлось ее слегка подпилить.

А какой плагин работает с acmp.ru?

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

СГУшный аналог:

http://code.google.com/p/pseudocontester/


К сожалению, как я понимаю, его очень трудно использовать за пределами инфраструктуры acm.sgu.ru.

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Конечно. :) В частности на сайте выложены файлы финалов ACM ICPC прошлых лет, которые можно написать виртуально через эту систему.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Только что Fly выложил плагин для связи с acmp.ru!
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Great!
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Do someone have the local test dll?
please share it.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Здравствуйте. Дайте плиз мне плагин от Дистанционной подготовке по информатике (http://informatics.mccme.ru/moodle/) и плагин Local Test или объясните как сделать .dll файл от кодов. Заранее Спасибо!.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Достаточно скачать исходники, открыть проект в Visual Studio (хватит и Express) и собрать его там. Проект не такой большой, проще пересобрать его целиком, хотя можно и только нужные плагины (у меня были проблемы, когда я сопрягал самосборный сервер с бинарными плагинами с сайта).
14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
ACM Server with LocalTest plugin: http://acm-server.ru/Data/ACMServer_LocalTest.zip
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Отличная система. Отлично запустилась с помощью wine на Debian Squeeze.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
http://habrahabr.ru/sandbox/15070/
ваша статья и тут=) Надеюсь вы и перенесли
»
10 лет назад, # |
  Проголосовать: нравится -13 Проголосовать: не нравится

что надо сделать с SVN? как скачать и куда надо поставить?