Перед тем как поставить задачу в систему DL ее надо где-то взять.
Один из вариантов - это самому придумать задачу и тесты к ней. Но можно взять уже существующие
задачи из олимпиад по программированию прошлых лет. Такие задачи ищут в Интернете.
Однако поиск задач при помощи поисковых систем - это дело очень долгое и утомительное.
Поэтому ниже приведен список ссылок, по которым вы, возможно, найдете все вам необходимое.
South Pacific http://www.sppcontest.org Asia-Kolkata-Roorkee http://www.cse.iitk.ac.in/users/acm/ South Africa http://www.cs.up.ac.za/acm Southeastern Europe http://www.acm.ro/ Southeast USA http://faculty.db.erau.edu/lehr/acm.html Asia - Beijing http://www.acm.tsinghua.edu.cn/ Mid-Central USA http://www.cs.smsu.edu/~mcpc/ Asia - Aizu http://www.u-aizu.ac.jp/conference/ACM/ Asia - Manila http://iits.uap.edu.ph/ Asia - Seoul http://cs.kaist.ac.kr/~acmicpc/ Asia - Kaohsiung http://guan.cse.nsysu.edu.tw/contest/ East Central North America http://acm.ashland.edu/ Mid-Atlantic USA http://midatl.cs.vt.edu/ North Central North America http://csalpha.ist.unomaha.edu/acmregn/index.html Northeast North America http://cs.wsc.ma.edu/acm_ne_region.html South Central USA http://acm2003.csc.lsu.edu/ http://acm2001.csc.lsu.edu/ http://acm2000.csc.lsu.edu/ Greater New York http://www.acmgnyr.org/ http://www.acmgnyr.org/year1999 Mexico and Central America http://orion.qro.itesm.mx/~acm/ South America http://www.dcc.unicamp.br/~acmcntst Asia - Dhaka http://www.buet.ac.bd/acmicpc/ Pacific Northwest http://www.acmcontest-pacnw.org/ Rocky Mountain http://www.mesastate.edu/acm/rmrc/2003/index.html Southern California http://socalcontest.acm.org/ Central Europe http://cepc.mimuw.edu.pl/ Northwestern Europe http://www.cs.lth.se/contest/nwerc Southwestern Europe http://www.polytechnique.edu/icpc2003/ Asia - Guangzhou http://acm.zsu.edu.cn/ Northeastern Europe http://neerc.ifmo.ru/ Asia - Tehran http://sharif.edu/~acmicpc/ Africa and Arab http://acm.kuniv.edu/ Asia - Bombay http://www.cse.iitb.ac.in/acm/Ссылки на задачи для личных олимпиад по программированию.
Argentina http://www.oia.org.ar Australia http://www.csse.monash.edu.au/~dld/IOI/InformaticsOlympiad.html Bulgaria http://www.math.bas.bg/bcmi/ Croatia http://www.srce.hr/hsin/ Cyprus http://www.pspo.org.cy Czech Rep. http://mo.mff.cuni.cz/p/ http://www.ksp.sk/ipsc/ Germany http://www.bwinf.de/ Gr.Britain http://www.christs.cam.ac.uk/bio/ Indonesia http://www.toki.or.id/ Latvia http://vip.latnet.lv/lio/English/english.htm Lithuania http://aldona.mii.lt/pms/olimp/english/engl.html Luxembourg http://cil.cte.lu/ Macedonia http://twins.pmf.ukim.edu.mk/ioi/ Netherlands http://olympiads.win.tue.nl/nio/nio-e.html Norway http://www.nio.ntnu.no/ Poland http://www.mimuw.edu.pl/OI/ http://www.oi.edu.pl/english/index.html Singapore http://www.comp.nus.edu.sg/~noi/ Slovakia http://www.ksp.sk/mop/english/ USA http://www.usaco.org Ukraine http://www.olymp.vinnica.ua/ Россия http://olympiads.ru
После того как вы нашли интересующие вас задачи и тесты к этим задачам, следует проверить тесты. Дело в том, что скорей всего тесты у Вас в не правиль-ном для DL виде. К примеру, встречаются следующие типы тестов: в условии задачи было сказано, что на входе 1 тест, а у меня в оригинальном тестовом файле несколько тестовых ситуаций, пусть, к примеру N, следовательно нужно составить N входных файлов, такая же ситуация и для выходных тестов. Другой случай, если по условию задачи на входе может быть несколько тестов, и все они "запиханы" в один файл, к примеру, tests.txt. Тогда их разбивка осуществляется чуть сложней, Вы ищете число в файле tests.txt (название файла может быть лю-бое) отвечающее за количество тестов, затем это количество тестов копируете, и вставляется в файл. Ваши созданные таким образом файлы, должны иметь име-на: 1.in, 1.out, 2.in, 2.out,:, N.in, N.out, соответственно *.in для входных файлов, *.out - для выходных (понятно, что для файла X.in, выходным является X.out, X = 1,2,:,N). Очевидно, что для больших тестов, с пару тысяч строчек, разбивание их вручную - удовольствие небольшое, поэтому можете с некоторыми модификациями согласно формату входных данных для определённой задачи использовать следующую программу :
Program GenTest; Var i,k,j,n,m,a:longint; Procedure Gen(j:longint); Var s:string; Begin Str(j,s); S:=s+'.in'; Assign(output,s); Rewrite(output); End; Begin Assign(input,'tests.txt'); reset(input); Readln(k); For i:=1 to k do Begin Gen(i); read(A); writeln(A); For j:=1 to a do Begin Read(n); Writeln(n,' '); End; Close(output); End; Close(input); End.Данная программа создаёт K файлов с именами 1.in, 2.in,:, K.in, в которые она записывает A чисел N (разных) и само число A (аналогичным образом можно поступить с выходными файлами *.out). Процедура Gen остаётся такой же, изме-няется только тело главной программы, причём наверняка, изменяться будут лишь аргументы циклов и ввод, вывод - readln, writeln - соответственно (проверено опытным путём). Вы можете создать EXE-файл данной программы и файл tests.txt:
4 1 3 4 5 2 6 3 3 4 2 5 2 8 9и проверить её работу.
Установить дату и время проведения олимпиады в каком-либо курсе вы сможете только в том случае,
если у вас есть права редактора курса (естественно права должны быть на тот курс, где вы хотите что-то изменить).
После установки олимпиады нужно указать время её проведения, для этого необходимо кликнуть на ярлык
"Редактор курса", затем кликнуть на ссылку "Установки времени", найти нужную Вам олимпиаду и
установить соответствующее время.
Также по возможности необходимо проверить составленные Вами тесты на правильность. Это можно сделать
посредством отсылки авторских решений, которые у Вас могли оказаться. В случае отсутствия авторских
решений задач, необходимо хотя бы визуально проверить корректность тестов, имеется в виду, формат
входных и выходных данных. Не помешал бы также следующий вид проверки (наверное, точнее сказать
НЕОБХОДИМ): послать на все задачи "программу-пустышку" - "begin end." и получить "не пройден 1-й тест",
в некоторых случаях легко можно добавить пару writeln, чтобы получить "не пройден 2-й тест".
На практике бывали случаи, когда такая отсылка помогла бы избежать проблем с неправильной установкой
тестов во время олимпиады.
4. Таблицы результатов
Установить таблицу результатов в каком-либо курсе вы сможете только в том случае, если у вас
есть права редактора курса (естественно права должны быть на тот курс, где вы хотите что-то изменить).
Так как в основном ставят задачи с реальных олимпиад по программированию, которые проходили
есколько лет назад, то по этим олимпиадам имеются реальные результаты. Эти результаты необходимо
поставить на DL, что бы студенты или школьники, после решения задач, могли сравнить свои достижения
с оригинальными результатами.
Постановка таблиц результатов осуществляется следующим образом:
\\Newit_server\dldata\ExtResults
создаете папку, названием
которой служит известный вам ID олимпиады.
Когда вы отсылаете архив с задачей, вы можете сделать что-нибудь непра-вильно (например, не положить
в архив файл с условием задачи). В этом случае вам будет выведено сообщение о соответствующей ошибке.
Ниже я привел различные сообщения, которые могут появиться, и пояснил, что они значат.
Краткие обозначения:
О - ошибка
Р - возможное решение
* - название вашей папки с задачами
В - вопрос, который может возникнуть
О - Директория:* не является натуральным индексом
Р - папки где находятся все файлы(task.htm, task.cfg ...) должны называться 1,2,3.. и т.д.
О - Не обнаружена директория *\taskdir и файл task.cfg
Р - 1)вы забыли поместить в папку с задачей файл task.cfg
2)вы неправильно назвали файл
O - Не обнаружен файл *\taskrus.htm
Р - вы забыли поместить в папку с задачей файл task.htm
O - Не обнаружен файл *\task.xml
Р - вы забыли поместить в папку с задачей файл task.xml
О - В директории * количество входных файлов не соответствует количеству выходных
Р - в папке с задачей количество входных файлов не соответствует количест-ву выходных (причем может
не хватать как входного (-ых) файла (-ов) так и вы-ходного (-ых) файла (-ых))
О - Ошибка в файле *\task.cfg :Количество тестов, объявленных в task.cfg =20 a в директории задачи 0
тестов (все тесты должны быть названы 1.in 1.out 2.in ...)
Р-проверьте названия своих тестов (все тесты должны быть названы 1.in 1.out 2.in ...)
О - Ошибка в файле *\task.cfg :Количество тестов, объявленных в task.cfg =20 a в директории задачи 19
тестов (все тесты должны быть названы 1.in 1.out 2.in ...)
Р - возможно нумерация ваших тестов начинается с 0 или же просто не хвата-ет тестов
О - Ошибка в файле *\task.cfg :Суммарная стоимость тестов должна совпа-дать с объявленной в TASK.XML |(24,1)
Р - проверьте файл task.cfg, посчитайте в нем сумму баллов за все тесты и сравните эту сумму с той суммой, которую вы объявили в task.cfg
О - 1)Файл *\task.xml: не найден тег NAME 2)Файл *\task.xml: не найден тег ENAME 3)Файл *\task.xml: не найден тег COSTР - в файле task.cfg вы забыли указать имя задачи или количество баллов за задачу