Как рассчитывается лимит времени на codechef?
В ходе марша "Codechef" были приняты решения Java для задачи "Функция случайного уменьшения", которые занимают более 30 секунд, но заданный срок составляет 2 секунды. Это более чем в 2 раза больше времени (4 секунды) для Java .
1 ответ
Заданное ограничение по времени относится только к 1 тестовому файлу, имеется много тестовых файлов, и в последний раз в вашей заявке указывается общее время, необходимое для прохождения всех тестовых файлов.
Цитирование на странице часто задаваемых вопросов по Codechef: [ http://www.codechef.com/wiki/faq ]
Что означает время выполнения, указанное для моего представления?
Codechef может протестировать ваш код несколько раз с различными входными файлами. Если ваш код дает правильный ответ в течение срока для каждого входного файла, отображаемое время выполнения представляет собой сумму времени, затраченного на каждый тестовый пример.
Если ваш код не проходит входной файл правильно, ограничение по времени будет общим временем всех входных файлов, вплоть до того, на котором вы потерпели неудачу, но не больше.
Пример: предположим, что есть 5 входных файлов, каждый из которых имеет ограничение по времени 2 секунды. Ваша программа работает в течение 1 секунды для каждого входного файла и выдает правильный ответ. Общее отображаемое время будет 5 секунд - и это хорошо, поскольку ограничение по времени применяется только к каждому входному файлу в отдельности.
С другой стороны, предположим, что первые 2 входных файла верны за 1 секунду, а третий - за 1,5 секунды. Ваше заявленное время будет 3,5 секунды.
Людей часто смущает неправильный ответ в очень быстрое время, переходящее на превышенный лимит времени. Это связано с тем, что первый входной файл небольшой; неправильный ответ означает, что время для больших входных файлов не включено.