Цитата(мисс_граффити @ 9.12.2006 19:04)
Мне всегда интересно было, как они тестируют программки...
Сейчас почти на всех олимпиадах - автоматом. Пишется проверялка, которая получает код, компилит (выдает ошибку если не компилится), и стравливает полученному екзешнику набор тестов, ограничивая по времени и по памяти. Хорошо бы при этом обезопасить систему от попытки взломов - не все проверялки написаны с таким расчетом, чем и пользуются иногда предприимчивые кулхацкеры - как самый простой пример, лазят по текущему каталогу, ищут файл с полученным тестом, и ищут для него ответ (обычно файлы с входными и выходными данными имеют похожее название; например, третий тест по задаче rectangle может находится в файле rectangle.i3, а правильный ответ - в rectangle.o3)
Умные проверялки блокируют доступ к системным вызовам, разрешая работу с одним-единственным входным файлом.
Почти на всех олимпиадах любая попытка взаимодействия с ОС, кроме обращения к таймеру, трактуется как попытка взлома, и ведет к дисквалификации.
Ну это я отошел от вопроса немного... Так вот, есть специальные пакеты для проведения олимпиад, содержащие в том числе и проверялки.
В мире самой популярной является система
PC^2 (на ней проводится, среди прочих соревнований, финал чемпионата мира ACM ICPC), в России также очень распространена московская
ejudge.