UPD: немного поправил примеры
Некоторые из вас знают про мой плагин для Idea. Одной из его самых интересных/полезных частей является автоматическое создание конфигураций с запуском задачи на всех тестах для некоторых сайтов, а именно — Codeforces, CodeChef, Timus, E-Olimp и RCC. Некоторые другие плагины предоставляют похожую функциональность для других сред разработки и языков программирования. На текущий момент это реализовано за счет скачивания веб-страниц и их парсинга. Данный подход имеет сразу несколько минусов:
- Повышается нагрузка на сервер (особенно в пиковое время вроде начала контеста)
- Изменение в структуре веб-страницы приводит к необходимости исправлять парсер и выпускать новую версию. Кроме того, некоторые сайты не имеют четкой структуры оформления примеров (например, CodeChef) — приходится использовать эвристики. Некоторые соревнования — SN*S, OpenCup — используют pdf для задач, что делает невозможным (или, по крайней мере, очень трудным) их парсинг
- Некоторые контесты (например, виртуальные) требуют логина для доступа к текстам задач. Доверять свои логин и пароль 3rd party софту — опасно
Для того, чтобы справится с этими проблемами необходима поддержка от администрации сайтов. Я предлагаю сделать следующее:
В случае наличия контестов с закрытыми задчами/виртуальных контестов выдавать каждому участнику специальный ключ, который может быть использован только для получения мета-данных о контестах/задачах.
Иметь по фиксированному url (скажем, http://codeforces.net/contests/list.xml?key=my_codeforces_key) xml файл с мета-данными о доступных контестах, которые в случае обращения без указанного выше ключа сообщают о контестах, доступных для всех, а в случае его наличия, а в случае обращения с ключом — доступные конкретному человеку. При этом может сообщаться дополнительная информация. Пример:
<site>Codeforces</site>
<icon url="http://codeforces.net/favicon.png" />
<contest-list>
<contest id="211">
<name>VK Cup 2012 Finals</name>
<name locale="ru">VK Cup 2012, Финал</name>
<url>http://codeforces.net/contest/212/contest.xml</url>
<status solved="4" attempted="4" />
</contest>
...
</contest list>
- Аналогично — для контеста иметь описание в примерно таком формате:
<contest id="211">
<name>VK Cup 2012 Finals</name>
<name locale="ru">VK Cup 2012, Финал</name>
<task id="211A">
<name>Privatization</name>
<name locale="ru">Приватизация</name>
<url>http://codeforces.net/contest/211/problem/A.xml</url>
<status solved="false" attempted="false" />
</task>
<task id="211B">
<name>Polycarpus is Looking for Good Substrings</name>
<name locale="ru">Поликарп ищет хорошие подстроки</name>
<url>http://codeforces.net/contest/211/problem/B.xml</url>
<status solved="true" attempted="true" />
</task>
...
</contest>
- Ну и наконец — для задачи:
<task id="211B">
<name>Polycarpus is Looking for Good Substrings</name>
<name locale="ru">Поликарп ищет хорошие подстроки</name>
<status solved="false" attempted="false" />
<input file="false" />
<output file="false" />
<memory-limit value="256" />
<test-type value="single" />
<test-case id="0">
<input>aaaaa\n2\na\na\n</input>
<output>1\n1\n</output>
</test-case>
<test-case id="1">
<input>abacaba\n3\nac\nba\na\n</input>
<output>1\n2\n4\n</output>
</test-case>
</task>
Задача данного поста — понять, считает ли коммьюнити введение подобного единого стандарта хорошим шагом и помочь сформулировать полную спецификацию формата
I have installed beta 10. But don't see launch topcoder button anywhere.
Also was trying to run a codeforces task and getting this error.
This thread is not about CHelper plugin. I would answer in pm