Меню

Ошибка во время исполнения яндекс контест

Сообщение Кратко Сообщается ли номер теста? Значение вердикта Возможная причина
OK OK Нет Решение зачтено Программа верно работает на соответствующем наборе тестов
Compilation error CE Нет Компиляция программы завершилась с ошибкой 1. в программе допущена синтаксическая или семантическая ошибка 2. неправильно указан язык
Wrong answer WA Да Ответ неверен 1. ошибка в программе 2. неверный алгоритм
Presentation error PE Да Тестирующая система не может проверить выходные данные, так как их формат не соответствует описанному в условиях задачи 1. неверный формат вывода 2. программа не печатает результат 3. лишний вывод
Time-limit exceeded TL Да Программа превысила установленный лимит времени 1. ошибка в программе 2. неэффективное решение
Memory limit exceeded ML Да Программа превысила установленный в условиях лимит памяти 1. ошибка в программе (например, бесконечная рекурсия) 2. неэффективное решение
Output limit exceeded OL Да Программа превысила установленный в условиях лимит вывода 1. программа выводит больше информации, чем установлено в ограничениях
Run-time error RE Да Программа завершила работу с ненулевым кодом возврата 1. ошибка выполнения 2. программа на C или C++ не завершается оператором return 0 3. ненулевой код возврата указан явно 4. Программа на Java описана в пакете
Precompile check failed PCF Нет Программа не прошла проверку на качество кода перед компиляцией 1. плохое качество кода 2. неправильно отформатированный код
Idleness limit exceeded IL Да Программа слишком долго не отвечала на запросы системы и не выполняла действий 1. программа ожидает ввода с консоли, которого не должно быть 2. не использован flush()

Yandex Contest

Screenshot 2021-09-26 at 23 12 57

Яндекс.Контест — сервис для онлайн-проверки заданий по программированию. Он предназначен для проведения состязаний любого уровня: олимпиады, соревнования международного класса, домашние задания. Его можно использовать также для подготовки к турнирам и для приёма экзаменов. Решения проверяются автоматически — с помощью набора тестов, составленных авторами заданий. Участники отправляют свои решения в тестирующую систему, а та выдает результат.

Мы предлагаем ознакомиться с краткой инструкцией по данной платформе, чтобы вы могли уделить свое время только решению задач.

Инструкция

В конце каждой прослушанной лекции на данной платформе будут даваться задачи для самостоятельного решения.

Перейдя по ссылке к домашней работе, вам в первую очередь нужно будет авторизоваться на платформе через аккаунт в Яндексе.

copy on disk

Если у вас нет аккаунта, то пройдите самую обычную процедуру регистрации.

copy on disk

Далее вы увидите кнопку регистрации, по которой нужно перейти для выполнения задач.

Обратите внимание, что на картинке изображен обратный отсчет. Но обычно мы не делаем ограничений по времени на сдачу домашнего задания.

copy on disk

После старта вы увидите основную информацию о соревновании: название, количество оставшегося времени, кнопка досрочного завершения. Нас будет интересовать ссылка на решение задач.

copy on disk

Основная информация о задаче представлена на картинке:

copy on disk

Есть несколько типов вердиктов после отправки вашего ответа:

  • OK — ответ/код правильный;
  • WA — есть ошибка.

copy on disk

И другие. Подробнее про них вы можете прочитать здесь, а также ниже.

При этом стоит обратить внимание, что Система засчитывает задание решенным, если хотя бы одно из отправленных решений был верным (если не оговорено другое). После него вы можете отправлять хоть 10 неверных ответов, однако в системе все равно будет зафиксировано, что вы давали верный ответ.

Если вы закончили решать задачи раньше установленного времени, то можете завершить соревнование и сохранить ваши результаты:

copy on disk

Если такой кнопки в контесте нет — ничего страшного. Соревнование завершится автоматически по достижению дедлайна.

Типы ошибок в Яндекс. Контест и способы их устранения.

Как уже было сказано выше, при отправке решений в Яндекс. Контест тестовая система может не принимать решения, выдавая некоторую ошибку. Возможные типы ошибок с их краткими описаниями уже приводились выше. Ниже будут более подробно разобраны некоторые ошибки и их возможные исправления.

CE (Compilation Error)

Данная ошибка возникает, если ваша программа написана не по правилам языка Python. Попробуйте сначала запустить вашу программу в Google Colab. При этом обратите внимание на следующие моменты:

  1. Не нужно забывать про отступы. Не нужно делать никаких лишних отступов. При этом, в каждом блоке должно быть одинаковое количество пробелов в качестве отступов (рекомендуется использовать 4 пробела). В противном случае Яндекс. Контест выдаст ошибку CE (Compilation Error).
    Например, ошибочным будет такой код:
x = 123
   print(x) # Ошибка будет здесь, т.к. перед print стоят лишние отступы

Также ошибка будет в таком фрагменте:

x = 1
if x==1:
    print("One")
else:
 print("Else")
# Ошибка будет здесь, т.к. во всех блоках программы должно быть одинаковое
# количество отступов, здесь внутри else перед print используется 1 отступ, хотя
# ранее после if перед print использовалось 4 отступа
  1. Проверьте, что в качестве отступов везде используется либо только пробелы, либо только t. Обратите внимание, что Tab не всегда равен 8 проблелам. t и несколько пробелов – это разные символы. Поэтому если в программе для отступов используется и t, и пробелы – система может выдать ошибку.
  2. Не забывайте закрывать все скобки и кавычки. Например, ошибку CE вызывают следующие фрагменты кода: print('str', print('123) и т.д.
  3. Проверьте наличие двоеточия после строчки с if, else, for, while (if x>y: ).

PE (Presentation error)

Данная ошибка может возникать, если формат вывода программы неверный.

При возникновении этой ошибки рекомендуется проверить следующее:

  1. В Google Colab для вывода значения переменной достаточно указать просто её имя:

copy on disk

Это допущение сделано для упрощения разработки. В Яндекс. Контесте такого нет. Необходимо явно использовать print(), чтобы вывести значение переменной:

  1. Тестовая система проверяет ответ с эталонным посимвольно. Поэтому отличие хотя бы в одном символе может привести к ошибке. Поэтому перед отправкой решений проверяйте, что в программе нет лишних (или недостающих) пробелов, переходов на новую строку и других символов.
  2. Лишним также могут быть вспомогательные сообщения, которые указываются в параметрах input() или print(), т.к. эти сообщения попадают в стандартный поток вывода и рассматриваются тестирующей системой как часть ответа.
    Как правило, в задачах требуется просто ввести или вывести какие-то значения без каких-то дополнительных подсказок.
    Т.е. не нужно писать input(“Введите число: ”) или print(“Искомый результат: ”, res) (здесь res — некоторая переменная, показывающая результат работы программы). Нужно писать просто input() или print(res).

RE (Runtime error)

Самая частая ошибка. Возникает, если код написан в целом по правилам языка Python, однако в ходе выполнения программы обнаруживаются какие-то ошибки.
При возникновении этой ошибки следует проверить следующее:

  1. Проверьте, что выполнены все рекомендации при возникновении ошибки Presentation error (эти же ситуации иногда могут приводить и к RE).
  2. Попробуйте запустить код в Google Colab и самостоятельно поискать ошибку.
  3. При использовании сторонних библиотек (numpy, pandas, math, fractions, itertools и др.) не забывайте делать соответствующий import:
  1. Если программа использует работу с файлами – проверьте точное совпадение имен входного и выходного файла в вашей программе с тем, что указано в условии.
  2. Проверьте, что имена стандартных функций и арифметические операции записаны верно (при этом не забывайте, что Python чувствителен к регистру букв, т.е. Print() и print() – это разные функции). Например, 2^3 – неверная запись операции возведения в степень (нужно 2**3). Аналогично, Print('string') – неверно, т.к. написано с большой буквы (верно print('string')).
  3. Не забывайте, сколько и каких параметров принимает каждая функция. Например, функция write() принимает только одну строку в отличие от print() (который принимает сколько угодно параметров, а также именованные параметры вроде sep и end). Также функция float() принимает в качестве параметра строку, представляющую вещественное число, где в качестве разделителя используется точка, а не запятая. Т.е. запись float("3,14") приведёт к ошибке (нужно float("3.14")).
  4. Проверьте, что нигде в вашей программе не может возникнуть деление на ноль при определённых входных данных или обращение к элементу списка/словаря с несуществующим индексом/ключом (например, для lst=[1, 2, 3] обращение lst[500] вызовет ошибку, т.к. элемента с индексом 500 в списке нет. Аналогично, для словаря d = {‘cat’: 3, ‘lion’: 2, ‘dog’: 7} вызовет ошибку обращение d[‘mouse’] (т.к. такого ключа в словаре нет)).

WA (Wrong answer)

Эта ошибка возникает в том случае, когда код написан без ошибок, связанных с языком Python, однако где-то в логике программы присутствует ошибка.

Тестовая система проверяет ваш код на различных входных данных (так называемых тестах) и сверяет ответ работы программы с эталонным. Если хотя бы на одном тесте ответ отличается, программа выдаёт ошибку WA. При этом, в таблице с вердиктом (она находится внизу решения на сайте Яндекс. Контест) в строке, соответствующей ошибке WA в столбце «Тест» указывается номер теста, на котором ответ вашей программы не совпал с эталонным.

copy on disk

В случае возникновения этой ошибки, проверьте следующие моменты:

  1. Проверьте, что выполнены все рекомендации при возникновении ошибки Presentation error (эти же ситуации иногда могут приводить и к WA).
  2. Если ошибка возникает на тесте № 1 – следует проверить корректность работы программы на данных из условия (обычно в условии есть пример ввода и вывода).
  3. Если ошибка возникает на тесте с номером больше 1 – стоит внимательно перечитать условие и комментарии к нему и проверить, что всё учтено:
    1. Верно указаны имена входных и выходных файлов (если программа подразумевает работу с файлами).
    2. Соблюдён формат выходных данных (всегда печатается нужное количество знаков после точки в вещественных числах, в .csv-файлах используются верные разделители, а названия колонок в точности совпадают с теми, что требуются в условии).
    3. Попытайтесь подумать, на каких входных данных, которые не совпадают с примером из условия, но соответствуют условию, ваша программа может работать некорректно.
Outcome Alias Test number is provided? Outcome explanation Possible reason
OK OK No The solution is accepted The solution works correctly on the corresponding set of test cases
Compilation error CE No Compilation of the solution failed 1. Syntax or semantic error in the solution 2. Solution language was chosen incorrectly
Wrong answer WA Yes Incorrect output on one of the test cases 1. A mistake in the solution 2. Wrong algorithm
Presentation error PE Yes Output cannot be checked as its format doesn’t satisfy the requirements 1. Incorrect output format 2. No output at all 3. Extra output
Time-limit exceeded TL Yes The solution exceeded the time limit 1. A mistake in the solution 2. The solution isn’t efficient enough
Memory limit exceeded ML Yes The solution exceeded the memory limit 1. A mistake in the solution (eg.: infinite recursion) 2. The solution isn’t efficient enough
Output limit exceeded OL Yes The solution exceeded the output limit 1. A mistake in the solution (eg.: infinite recursion)
Run-time error RE Yes The solution stopped working with a non-zero exit code 1. Runtime error 2. The solution doesn’t end with “return 0” in case of C/C++ 3. Non-zero exit code is manually specified 4. Java solution is in a package
Precompile check failed PCF No The solution doesn’t pass precompile checks 1. Bad code style 2. Other code checks are not passed. Check the statements or submission report
Idelness limit exceeded IL Yes The solution was idle too long 1. Solution expects extra input 2. flush() is missing

Решаю вот эту задачу(пробный контест):
A. Быстрый старт
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
В этом году третий раз одна известная компания проводит соревнование по программированию искусственного интеллекта для игровых стратегий. В этот раз участникам предложили написать искусственный интеллект для управления командой хоккеистов. Вася решил побороться за главный приз. Прочитав раздел “Быстрый старт”, он приступил к делу. Не прошло и нескольких часов, как хоккеисты начали ездить за шайбой по площадке. Но Вася заметил, что не всегда у игрока получается взять шайбу. Перечитав внимательно документацию, он выяснил, что для расчета вероятности подобрать шайбу нужно подсчитать коэффициент, равный максимальному значению из двух характеристик хоккеиста — ловкости D и подвижности A. Помогите Васе по известным значениям ловкости и подвижности определить этот коэффициент.

Формат ввода
Во входном файле заданы два целых числа D и A (0 ≤ D, A ≤ 109) — ловкость и подвижность хоккеиста соответственно.

Формат вывода
В выходной файл выведите коэффициент

Пример 1
Ввод Вывод
100 64 100
Пример 2
Ввод Вывод
31 14 31

Код:

Python
1
2
d,a = map(int,input().split())
print(max(a,b))

выводит ошибку Run-time error
хотя при проверке вроде все работало

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

Тренируюсь решать задачи Яндекса.
Вот условие:
Дан упорядоченный по неубыванию массив целых 32-разрядных чисел. Требуется удалить из него все повторения.

Желательно получить решение, которое не считывает входной файл целиком в память, т.е., использует лишь константный объем памяти в процессе работы.

Первая строка входного файла содержит единственное число n, n ≤ 1000000.

На следующих n строк расположены числа — элементы массива, по одному на строку. Числа отсортированы по неубыванию.

У меня возникает Runtime error, а из-за чего — не могу понять. Не сказано же какая. В чём может быть проблема?

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class WooHoo {
    public static void main(String[] args) throws Exception {
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(r.readLine());
        int prev = Integer.parseInt(r.readLine());
        System.out.println(prev);
        for (int i = 1; i < n; i++) {
            int cur = Integer.parseInt(r.readLine());
            if (prev == cur) {
                continue;
            } else {
                prev = cur;
                System.out.println(cur);
            }
        }

    }
}

  • #1

Есть задача:

Вашему решению будет предоставлены две переменные a и b. Напишите списочное выражения для получения квадратов чисел из диапазона [a, b].
В решении не должно быть ничего, кроме списочного выражения.

ПРИМЕР:

Ввод
a = 1
b = 5

Вывод
[1, 4, 9, 16, 25]

В итоге решение в одну строку, но при проверке — ошибка RE (Вывод моей программы идентичен примеру)

Python:

print([i**2 for i in range(int(input()), int(input()) + 1)])

Подумал, что ввод может быть организован именно строками типа ‘a = 1’, тогда отсекаю первые 4 символа, но все равно ошибка.

Python:

print([i**2 for i in range(int(input()[4:]), int(input()[4:]) + 1)])

Если вместо input() указываю переменные a, b — в логе пишет, что эти переменные неопределены.

Что может быть не по феншую?

  • #4

Ну хз. попробуй так
upd

Python:

a = int(input('a = '))
b = int(input('b = '))

print([i**2 for i in range(a, b + 1)] if a < b
      else [i**2 for i in range(a, b - 1, -1)])

  • #2

но при проверке — ошибка RE

Что это за ошибка такая? Где она возникает?

  • #3

Что это за ошибка такая? Где она возникает?

1671554928829-png.2160

1671555351835.png

  • #5

Ну хз. попробуй так

Python:

a = int(input('a = '))
b = int(input('b = '))

print([i**2 for i in range(a, b + 1)] if a < b
      else [i**2 for i in range(b, a + 1)])

Согласен, не учел, что первое число может быть меньше второго, но дело в том, что если бы ответ был неверным, была бы ошибка WA (wrong answer)

  • #6

В общем разобрался. Основная фраза «В решении не должно быть ничего, кроме списочного выражения.»

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка во время исполнения python
  • Ошибка винрар неожиданный конец архива