История
Версия для печати

Архив форума

сумасшедший ацм-щик 25.03.2004 00:04
задача номер 1289 ( http://acm.timus.ru/problem.aspx?space=1&num=1289 )

текст "решения":
---
#include <iostream.h>

int main(){

int X;
unsigned long ret;

cin>>X;

switch(X) {
case 2: ret=10;break;
case 4: ret=1090;break;
case 6: ret=110890;break;
case 8: ret=11088890;break;
case 10: ret=1111088890;break;
}

if(X==200000){
int a=0;
X=X/a; // raise division by zero
}

cout<<ret<<endl;

return 0;
}
----

ответ проверяющей системы: Crash (INT_DIVIDE_BY_ZERO) (на 4м тесте).

Очевидно, на вход подается N=200 000, в то время как по условиям "Input: Integer number N <=20 ..."

Господа, я сошел с ума или чего? :oops: :wink: :?: :shock:
Sergey 25.03.2004 00:48
Известный глюк Тимуса:
выложенные условия задач не всегда совпадают с авторскими условиями :lol:
Насколько я помню, в реальном контесте было N<=200000
сумасшедший ацм-щик 25.03.2004 00:54
нашел О(N) алгоритм генерации ответа, задача тесты прошла. Однако, вопрос "чезанафиг" остается в силе.
сумасшедший ацм-щик 25.03.2004 00:59
Sergey:
Известный глюк Тимуса:
выложенные условия задач не всегда совпадают с авторскими условиями :lol:
Насколько я помню, в реальном контесте было N<=200000
хады! весь вечер убил на попытки разобраться... и ведь не диагностируешь такую фигню никак, кроме как "взломом" проверяющей системы.
Vladimir 25.03.2004 01:14
сумасшедший ацм-щик:
и ведь не диагностируешь такую фигню никак
Если есть подозрение, что выполняется некоторое условие, которое не должно выполняться (в данном случае N>20), то всегда можно написать в коде
while (N>20);
чтобы в случае неверных данных получить Time Limit Exceeded или
while (N>20) puts("OLE! OLE! OLE!");
чтобы - Output Limit Exceeded

А лучше решать задачи с правильными условиями :)
Советую порешать acm.sgu.ru - там пока все условия правильные да и задачи поактуальнее
Гость 25.03.2004 01:26
Vladimir:
сумасшедший ацм-щик:
и ведь не диагностируешь такую фигню никак
Если есть подозрение, что выполняется некоторое условие, которое не должно выполняться (в данном случае N>20), то всегда можно написать в коде
while (N>20);
чтобы в случае неверных данных получить Time Limit Exceeded или
while (N>20) puts("OLE! OLE! OLE!");
чтобы - Output Limit Exceeded

А лучше решать задачи с правильными условиями :)
Советую порешать acm.sgu.ru - там пока все условия правильные да и задачи поактуальнее
или a/b (b==0), чтобы получить division by zero, или (char*)(NULL)++ - чтобы получить access violation. только все это - из серии "получение информации о тестах". по-хорошему не должно такого быть. как, впрочем, и неправильных условий :wink:

хотел просто прикинуть, какое место занял бы, если бы учавствовал в первенстве УрГУ, а вместо этого весь вечер с ЧУЖИМИ :(( глюками разбирался - сначала с нежеланием задачи отсылаться на проверку (пришлось искать ее же в другом месте), а потом с условиями, не соответствующими тестам...
Vladimir 25.03.2004 03:08
Гость:
хотел просто прикинуть, какое место занял бы, если бы учавствовал в первенстве УрГУ, а вместо этого весь вечер с ЧУЖИМИ :(( глюками разбирался - сначала с нежеланием задачи отсылаться на проверку (пришлось искать ее же в другом месте), а потом с условиями, не соответствующими тестам...
А это и есть условия приближенные к реальным!
На контестах всегда все глючит, ломается, тормозит, условия и тесты неправильные, жюри несправедливое и т.д. Дома можешь хоть 100 задач сдать за 5 часов а на контесте - 0. Вывод: ничто не заменит опыт соревнований, надо участвовать в них даже если мало шансов победить.
Гость 25.03.2004 12:00
Vladimir:
А это и есть условия приближенные к реальным!
На контестах всегда все глючит, ломается, тормозит, условия и тесты неправильные, жюри несправедливое и т.д. Дома можешь хоть 100 задач сдать за 5 часов а на контесте - 0. Вывод: ничто не заменит опыт соревнований, надо участвовать в них даже если мало шансов победить.
повезло мне, стало быть, учавствовал в двух, в первом несправедливое жюри мне лишние баллы за задачу приписало (в 96 году на областной олимпиаде школьниокв), а во втором (то ли в 98, то ли в 99 в командном первенстве ургу) ничего не глючило, кроме меня и моей команды :lol:
Гость 25.03.2004 13:48
сотона послушался и сгинул, условия пофиксили. всем спасибо.
Vladimir 25.03.2004 20:26
Гость:
сотона послушался и сгинул, условия пофиксили. всем спасибо.
Пофиксили, да не все. В задаче про покер так и не добавили сэмпл - на контесте он был. А в Астролокации не исправили 2 опечатки в условии - на контесте были соответствующие кларифы.
Илья Гофман 25.03.2004 20:35
а в Шестеренках (1291) все еще sample не правильный...