Добрый день!
Я внимательно прочитал правила и прекрасно понимаю всю мотивацию администрации сайта почему они не выдают полные тесты. И я полностью готов мириться с этим ради такого прекрасного сайта, единственного известного мне, где я могу смотреть на решения "чемпионов" и сравнивать со своими.
Но вот что делать, если твой код -- который тебе кажется правильным -- не проходит какой-то из "длинных" тестов?
Если просто выдается неправильное решение, то система также указывает и ожидаемый ответ и на основании этой информации что-то можно сделать.
А что делать при падении кода? Вот у меня вроде бы рабочий код, падает на одном из длинных тестов: 6810527. И я совершенно не знаю, что мне теперь делать -- то ли он при чтении данных еще падает, то ли при расчёте, а может при выдаче?
Я понимаю, что тут аргументы "сам виноват", и у других код работает нормально -- но я же хочу понять, в чем была моя ошибка.
Есть ли какая-то возможность вернуть при падении хоть какую-то отладочную информацию? Я могу без проблем сам выдать всю нужную информацию в stderr, если я бы ее потом увидел в результатах теста (или хотя бы первые 200 символов, чтобы не допустить жульничества и "проброса" входных данных).
Заранее спасибо, Александр.
Как один из вариантов, можно выводить отладочную информацию в stdout под условием, которое впервые выполняется на интересующем тесте (m == 10067 в конкретном примере).
Не могли бы Вы пояснить, что Вы имеете в виду?
if (m == 10067)
вывести в stdout отладочную информацию вместо правильного ответа.Да, спасибо, это действительно помогает! Даже не надо условие специальное искать -- просто заворачиваешь весь код в try/catch и выдаешь иссключение в консоль. Сразу стало понятно, что проблема в переполнении Sum() LINQ метода. Это мне сразу помогло найти проблему в коде (и ошибку в алгоритме тоже :) ).
Часто помогает написание второго решения и своего генератора для тестов.
Второе решение обосновано в том случае, если бы первое не проходило ряд тестов. А здесь оно просто падает. Поскольку решение кардинально отличается от авторского мне и хочется проверить именно его.
Если решение падает, обосновано написание генератора тестов и прогон решения на нем.