Челленджи

Экстремальные виды спорта: ЧелленджиСобственно, вот. Начались пятнадцать минут, когда игра из подобия ACM превращается в подобие Quake. Кто как действует? Кого и по каким задачам выбирает в качестве жертвы? Как определяет (если!), читая код, где может быть баг и как составляет стресс-тесты (вручную или можно как-то генерить).
И, самое важное, какой экспирьенс мы с этого выносим, если рассматривать TopCoder в качестве тренировки для ACM?
41 комментарий
avatar
Всмысле задачи "на изварт"? Ad hoc, что-ли? А UVA?
avatar
Да уж, все горазды свои собственные ejudge нахваливать.
avatar
> Да уж, все горазды свои собственные ejudge нахваливать.

Очевидно было что я говорил немного иронично :о)
В любом случае e-judge к которой ты имеешь полуадминские права с возможностью при надобности посмотреть/исправить тест или пнуть автора чтобы тот исправил баги лучше любой другой :о)
avatar
Еще раз про задачи на изврат, пожалуйста, для особо тупых :)))
avatar
Имеются в виду задачи, в которых содержатся нестандартные и не особо полезные идеи которые навряд ли появятся в других задачах.
avatar
Ну, я все равно не понял :))
avatar
Можно ли как-нибудь узнать каким тестом завалили мое решение?
avatar
Да, посмотреть на сайте.
avatar
ну про изврат например так) на тимусе есть задача на поток, но заходит только Lift-To-Front) то есть поток придумать там вообще как делать нефиг, зато надо именно знать ЛТФ) то есть просто перепичатать Кормена) а если учесть что это было на он-лайн контесте, то даже не зная ЛТФ, можно было спокойно загуглить и АС) как и впринципе N-queens puzzle) та же история) это я все про тимус) ну зачем так делать?)) хотя таких задач там мало) зато весь тимус - сплошь урал) а на урале своя специфика задач) вот на баксе много разных собрано отовсюду комплектов, что на мой взгляд - самое то для тренировок) еще TJU тоже классный архив)
avatar
От себя хочу добавить, что SaSu Online Contester - замечательный архив. Небезизвестный AcRush в интервью говорил, что это его самый любимый online сборник задач. Разумеется и специфику четвертьфинала Южного подрегиона он отражает.
avatar
Илья Ашихмин
>Можно ли как-нибудь узнать каким тестом завалили мое решение?

ну или после конца фазы челленджей спросить у почелленджившего)
avatar
Самый распространенный способ, особенно в ожидании систестов :)
avatar
А еще вроде в history сохраняется челлендж кейс...
avatar
кста, а как на bacs-е самому составлять контесты или принимать участие в тренировках ижевцев?
avatar
> кста, а как на bacs-е самому составлять контесты или принимать участие в тренировках ижевцев?

Связаться с ними :о)

> А еще вроде в history сохраняется челлендж кейс...

В арене не сохраняется - по крайней мере раньше точно не было
Но на сайте потом есть - правда сайт долго ждать пока обновится, так что всегда лучше спросить конечно

avatar
я на челлендже сначала занимаюсь «нубами», а затем теми, кто сдавал решения быстрее всех — если за 500-очковую задачу получаешь 497, наверняка можно в спешке допустить ошибку.
avatar
ВНЕЗАПНО оживлю тему.

Я вот на последнем срме долго думал, челенжить чувака на C/Cpp по поводу range check'а (ну у него был массивчик 1000 на 1000, а он обращался к 1002 элементу типа) или не челенжить, в итоге наученный горьким опытом, что если тупой и не сдал 500, лучше не челенжить если не уверен (потому что сразу место возрастает раза в три =) ), решил поберечь очки.

Систест сказал что все-таки решение-то его упало!
Причем как-то странно упало, на тесте <997, 1000>, т.е. в любом случае если бы он и перешел за границу, все равно остался бы в том же участке памяти, где хранится все тот же массив => не должно было быть рантайма.
Но он был!

Это я к чему:
Если есть знатоки проверяющей системы арены, расскажите плз про range check'и на Cpp, м?

На Java насколько я понимаю все всегда валится ибо насильная проверка со стороны джава-машины..
avatar
Общее правило: никогда не челенжи CPP шное решение выходом за пределы массива :о) Это в 90% случаев unsuccessfull.
А в твоем случае я думаю был еще какой-то рантайм в решении.
avatar
ну значит идеологически я все-таки правильно поступил..)

ну вроде там ничего не было интеллектуального.
там было тупо

int a[1001][1001];

..
for (int i = 0; i < w; i++ ){
for (int j = 0; j < h; j++) {
if (!a[i][j]) {
a[i + 2][j] = 1;
a[i][j + 2] = 1;
}
}
}

где w,h <= 1000
avatar
Напиши прогу типа

#include <stdio.h>

int a[1005];
int main(){
for( int i = 0; ; ++ i ) { a[i] = i; printf( "%d\n", a[i] ); }
return 0;}

Запусти и посмотри когда упадет :о)
У меня падает на 1009
avatar
У меня было такое - уже после кодинг-фазы допер, что накосячил с размером массива. А оно прошло систест. Долго чесал репу, потом понял, что переполнявшийся массив был у меня последней объявленной глобальной переменной в коде. Переставил его местами с другим - и увидел свой законный сегфолт.
avatar
у мну падает на 2024. Версия компилятора: gcc-4.3.4
avatar
#39 именно сегфолт, а не WA ?
avatar
Да чего ты спрашиваешь, ты ведь читал об этом случае в моем блоге и даже сам комментил :)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.