Сообщение | Кратко | Сообщается ли номер теста? | Значение вердикта | Возможная причина |
---|---|---|---|---|
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
Яндекс.Контест — сервис для онлайн-проверки заданий по программированию. Он предназначен для проведения состязаний любого уровня: олимпиады, соревнования международного класса, домашние задания. Его можно использовать также для подготовки к турнирам и для приёма экзаменов. Решения проверяются автоматически — с помощью набора тестов, составленных авторами заданий. Участники отправляют свои решения в тестирующую систему, а та выдает результат.
Мы предлагаем ознакомиться с краткой инструкцией по данной платформе, чтобы вы могли уделить свое время только решению задач.
Инструкция
В конце каждой прослушанной лекции на данной платформе будут даваться задачи для самостоятельного решения.
Перейдя по ссылке к домашней работе, вам в первую очередь нужно будет авторизоваться на платформе через аккаунт в Яндексе.
Если у вас нет аккаунта, то пройдите самую обычную процедуру регистрации.
Далее вы увидите кнопку регистрации, по которой нужно перейти для выполнения задач.
Обратите внимание, что на картинке изображен обратный отсчет. Но обычно мы не делаем ограничений по времени на сдачу домашнего задания.
После старта вы увидите основную информацию о соревновании: название, количество оставшегося времени, кнопка досрочного завершения. Нас будет интересовать ссылка на решение задач.
Основная информация о задаче представлена на картинке:
Есть несколько типов вердиктов после отправки вашего ответа:
- OK — ответ/код правильный;
- WA — есть ошибка.
И другие. Подробнее про них вы можете прочитать здесь, а также ниже.
При этом стоит обратить внимание, что Система засчитывает задание решенным, если хотя бы одно из отправленных решений был верным (если не оговорено другое). После него вы можете отправлять хоть 10 неверных ответов, однако в системе все равно будет зафиксировано, что вы давали верный ответ.
Если вы закончили решать задачи раньше установленного времени, то можете завершить соревнование и сохранить ваши результаты:
Если такой кнопки в контесте нет — ничего страшного. Соревнование завершится автоматически по достижению дедлайна.
Типы ошибок в Яндекс. Контест и способы их устранения.
Как уже было сказано выше, при отправке решений в Яндекс. Контест тестовая система может не принимать решения, выдавая некоторую ошибку. Возможные типы ошибок с их краткими описаниями уже приводились выше. Ниже будут более подробно разобраны некоторые ошибки и их возможные исправления.
CE (Compilation Error)
Данная ошибка возникает, если ваша программа написана не по правилам языка Python. Попробуйте сначала запустить вашу программу в Google Colab. При этом обратите внимание на следующие моменты:
- Не нужно забывать про отступы. Не нужно делать никаких лишних отступов. При этом, в каждом блоке должно быть одинаковое количество пробелов в качестве отступов (рекомендуется использовать 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 отступа
- Проверьте, что в качестве отступов везде используется либо только пробелы, либо только t. Обратите внимание, что Tab не всегда равен 8 проблелам. t и несколько пробелов – это разные символы. Поэтому если в программе для отступов используется и t, и пробелы – система может выдать ошибку.
- Не забывайте закрывать все скобки и кавычки. Например, ошибку CE вызывают следующие фрагменты кода:
print('str'
,print('123)
и т.д. - Проверьте наличие двоеточия после строчки с
if, else, for, while
(if x>y:
).
PE (Presentation error)
Данная ошибка может возникать, если формат вывода программы неверный.
При возникновении этой ошибки рекомендуется проверить следующее:
- В Google Colab для вывода значения переменной достаточно указать просто её имя:
Это допущение сделано для упрощения разработки. В Яндекс. Контесте такого нет. Необходимо явно использовать print()
, чтобы вывести значение переменной:
- Тестовая система проверяет ответ с эталонным посимвольно. Поэтому отличие хотя бы в одном символе может привести к ошибке. Поэтому перед отправкой решений проверяйте, что в программе нет лишних (или недостающих) пробелов, переходов на новую строку и других символов.
- Лишним также могут быть вспомогательные сообщения, которые указываются в параметрах
input()
илиprint()
, т.к. эти сообщения попадают в стандартный поток вывода и рассматриваются тестирующей системой как часть ответа.
Как правило, в задачах требуется просто ввести или вывести какие-то значения без каких-то дополнительных подсказок.
Т.е. не нужно писатьinput(“Введите число: ”)
илиprint(“Искомый результат: ”, res)
(здесь res — некоторая переменная, показывающая результат работы программы). Нужно писать простоinput()
илиprint(res)
.
RE (Runtime error)
Самая частая ошибка. Возникает, если код написан в целом по правилам языка Python, однако в ходе выполнения программы обнаруживаются какие-то ошибки.
При возникновении этой ошибки следует проверить следующее:
- Проверьте, что выполнены все рекомендации при возникновении ошибки Presentation error (эти же ситуации иногда могут приводить и к RE).
- Попробуйте запустить код в Google Colab и самостоятельно поискать ошибку.
- При использовании сторонних библиотек (
numpy
,pandas
,math
,fractions
,itertools
и др.) не забывайте делать соответствующийimport
:
- Если программа использует работу с файлами – проверьте точное совпадение имен входного и выходного файла в вашей программе с тем, что указано в условии.
- Проверьте, что имена стандартных функций и арифметические операции записаны верно (при этом не забывайте, что Python чувствителен к регистру букв, т.е.
Print()
иprint()
– это разные функции). Например,2^3
– неверная запись операции возведения в степень (нужно2**3
). Аналогично,Print('string')
– неверно, т.к. написано с большой буквы (верноprint('string')
). - Не забывайте, сколько и каких параметров принимает каждая функция. Например, функция
write()
принимает только одну строку в отличие отprint()
(который принимает сколько угодно параметров, а также именованные параметры вродеsep
иend
). Также функцияfloat()
принимает в качестве параметра строку, представляющую вещественное число, где в качестве разделителя используется точка, а не запятая. Т.е. записьfloat("3,14")
приведёт к ошибке (нужноfloat("3.14")
). - Проверьте, что нигде в вашей программе не может возникнуть деление на ноль при определённых входных данных или обращение к элементу списка/словаря с несуществующим индексом/ключом (например, для
lst=[1, 2, 3]
обращениеlst[500]
вызовет ошибку, т.к. элемента с индексом 500 в списке нет. Аналогично, для словаряd = {‘cat’: 3, ‘lion’: 2, ‘dog’: 7}
вызовет ошибку обращениеd[‘mouse’]
(т.к. такого ключа в словаре нет)).
WA (Wrong answer)
Эта ошибка возникает в том случае, когда код написан без ошибок, связанных с языком Python, однако где-то в логике программы присутствует ошибка.
Тестовая система проверяет ваш код на различных входных данных (так называемых тестах) и сверяет ответ работы программы с эталонным. Если хотя бы на одном тесте ответ отличается, программа выдаёт ошибку WA. При этом, в таблице с вердиктом (она находится внизу решения на сайте Яндекс. Контест) в строке, соответствующей ошибке WA в столбце «Тест» указывается номер теста, на котором ответ вашей программы не совпал с эталонным.
В случае возникновения этой ошибки, проверьте следующие моменты:
- Проверьте, что выполнены все рекомендации при возникновении ошибки Presentation error (эти же ситуации иногда могут приводить и к WA).
- Если ошибка возникает на тесте № 1 – следует проверить корректность работы программы на данных из условия (обычно в условии есть пример ввода и вывода).
- Если ошибка возникает на тесте с номером больше 1 – стоит внимательно перечитать условие и комментарии к нему и проверить, что всё учтено:
- Верно указаны имена входных и выходных файлов (если программа подразумевает работу с файлами).
- Соблюдён формат выходных данных (всегда печатается нужное количество знаков после точки в вещественных числах, в .csv-файлах используются верные разделители, а названия колонок в точности совпадают с теми, что требуются в условии).
- Попытайтесь подумать, на каких входных данных, которые не совпадают с примером из условия, но соответствуют условию, ваша программа может работать некорректно.
Тренируюсь решать задачи Яндекса.
Вот условие:
Дан упорядоченный по неубыванию массив целых 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);
}
}
}
}
Решаю вот эту задачу(пробный контест):
A. Быстрый старт
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
В этом году третий раз одна известная компания проводит соревнование по программированию искусственного интеллекта для игровых стратегий. В этот раз участникам предложили написать искусственный интеллект для управления командой хоккеистов. Вася решил побороться за главный приз. Прочитав раздел “Быстрый старт”, он приступил к делу. Не прошло и нескольких часов, как хоккеисты начали ездить за шайбой по площадке. Но Вася заметил, что не всегда у игрока получается взять шайбу. Перечитав внимательно документацию, он выяснил, что для расчета вероятности подобрать шайбу нужно подсчитать коэффициент, равный максимальному значению из двух характеристик хоккеиста — ловкости D и подвижности A. Помогите Васе по известным значениям ловкости и подвижности определить этот коэффициент.
Формат ввода
Во входном файле заданы два целых числа D и A (0 ≤ D, A ≤ 109) — ловкость и подвижность хоккеиста соответственно.
Формат вывода
В выходной файл выведите коэффициент
Пример 1
Ввод Вывод
100 64 100
Пример 2
Ввод Вывод
31 14 31
Код:
Python | ||
|
выводит ошибку Run-time error
хотя при проверке вроде все работало
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Yandex_contest_2021
Summer + Autumn
Осенняя стажировка 2021
A. Медиана с вычитанием
Дан массив a длины 3 из целых чисел.
Определим операцию изменения массива: выбирается два различных индекса i и j (1≤i,j≤3, i≠j), после чего a[i] становится равным a[i]−a[j].
Пример операции: дан массив [1,−3,2], выбрали i=2,j=1, получили массив [1,−3−1,2] = [1,−4,2].
Определим для массива a медиану m как значение, расположенное на позиции 2 при сортировке элементов массива a.
К примеру, медианой массива a = [1,−3,2] является m = 1, так как в сортированном массиве [−3,1,2] именно 1 стоит на позиции 2.
Назовём медианным индексом такой индекс i, что ai = m.
Обратите внимание, что медианный индекс необязательно единственный: в массиве a = [3,0,3] медиана m = 3, а медианными индексами являются i1 = 1 (a1 = m) и i2 = 3 (a3 = m).
Для каждого индекса i массива a выясните, может ли он стать медианным, если можно сделать не более одной операции изменения массива (можно не делать операций вовсе).
Формат ввода
В единственной строке даны 3 целых числа ai (−109≤ai≤109), разделенные пробелами.
Формат вывода
Для каждого индекса i (1≤i≤3) выведите в отдельной строке ответ: YES, если после не более, чем одной операции изменения массива i может стать медианным индексом; NO — иначе.
Пример 1
Ввод | Вывод |
---|---|
2 | YES |
6 | YES |
5 | YES |
Пример 2
Ввод | Вывод |
---|---|
0 | YES |
-3 | NO |
1 | YES |
###Примечания
В первом тесте a = [2,6,5].
Если сделать операцию изменения i=2,j=3, то получится массив [2,1,5], медиана будет равна 2, а значит i = 1 будет являться медианным индексом.
Если сделать операцию изменения i=2,j=1, то получится массив [2,4,5], медиана будет равна 4, а значит i = 2 будет являться медианным индексом.
Если не делать никаких операций изменения, то медианой массива [2,6,5] будет 5, а значит i = 3 будет являться медианным индексом. Аналогично i=3 будет медианным индексом после операции изменения i=3,j=1.
Во втором тесте единственной операцией изменения, делающей индекс i=2 медианным, является операция i=2,j=2, но такая операция не является корректной, так как индексы i и j должны быть различны.
B. Яндекс.Бар
Яндекс запускает новый бизнес-юнит – Яндекс.Бар. При разработке меню появилась необходимость рисовать слоистые коктейли. Для поддержания концепции IT-бара было принято решение рисовать коктейли, используя ASCII-арт. Вам необходимо считать форму стакана и список ингредиентов слоистого коктейля, заполнить стакан ингредиентами в нужном порядке и распечатать результат.
Описание стакана – это символьное поле из n строк по m символов в каждой. Поле состоит из символов . (точек), (обратных слешей), / (прямых слешей), | (вертикальных черт), _ (нижних подчеркиваний) и пробелов.
Дно стакана расположено на последней n-й строке и состоит из символов _ (нижних подчеркиваний), расположенных слитно.
Слева и справа от дна нарисованы грани стакана. Грань – это «ломаная» из символов (обратных слешей), / (прямых слешей), | (вертикальных черт). Каждая грань состоит из ровно n символов, начинается в последней n-й строке и заканчивается в первой. Для любой пары соседних строк i и i+1 символы грани расположены в одном или соседних столбцах. Грани не пересекаются и не касаются друг друга ни по стороне, ни по углу. В частности из этого следует, что в любой строке, кроме последней n-й, есть пустое место, обозначаемое пробелами.
Фон изображения стакана состоит из символов . (точек), расположенных слева от левой грани стакана и справа от правой.
Формат ввода
Первая строка содержит два числа n и m (2≤n≤100, 3≤m≤100), которые обозначают размеры поля – изображения стакана.
Следующие n строк по m символов в каждой содержат описание стакана в формате, указанном выше.
Следующая строка содержит число k (0≤k≤min(n−1,89)) – количество ингредиентов коктейля.
Следующие k строк содержат описания ингредиентов, по одному в каждой строке. Описание имеет вид nameicountisymboli.
namei – это название i-го ингредиента (строка из строчных латинских букв длиной не менее 1 и не более 10).
counti – это количество слоев i-го ингредиента.
symboli – это символ, которым i-й ингредиент должен быть представлен в изображении (любой символ с ASCII кодом больше 32 и меньше 127, кроме тех, которые используются в описании изображения стакана).
Гарантируется, что сумма всех counti не превосходит высоты стакана, то есть n−1. Также гарантируется что все символы symboli уникальны.
Формат вывода
В n строках по m символов в каждой выведите описание стакана в указанном выше формате.
Yandex Contest
Яндекс.Контест — сервис для онлайн-проверки заданий по программированию. Он предназначен для проведения состязаний любого уровня: олимпиады, соревнования международного класса, домашние задания. Его можно использовать также для подготовки к турнирам и для приёма экзаменов. Решения проверяются автоматически — с помощью набора тестов, составленных авторами заданий. Участники отправляют свои решения в тестирующую систему, а та выдает результат.
Мы предлагаем ознакомиться с краткой инструкцией по данной платформе, чтобы вы могли уделить свое время только решению задач.
Инструкция
В конце каждой прослушанной лекции на данной платформе будут даваться задачи для самостоятельного решения.
Перейдя по ссылке к домашней работе, вам в первую очередь нужно будет авторизоваться на платформе через аккаунт в Яндексе.
Если у вас нет аккаунта, то пройдите самую обычную процедуру регистрации.
Далее вы увидите кнопку регистрации, по которой нужно перейти для выполнения задач.
Обратите внимание, что на картинке изображен обратный отсчет. Но обычно мы не делаем ограничений по времени на сдачу домашнего задания.
После старта вы увидите основную информацию о соревновании: название, количество оставшегося времени, кнопка досрочного завершения. Нас будет интересовать ссылка на решение задач.
Основная информация о задаче представлена на картинке:
Есть несколько типов вердиктов после отправки вашего ответа:
- OK — ответ/код правильный;
- WA — есть ошибка.
И другие. Подробнее про них вы можете прочитать здесь, а также ниже.
При этом стоит обратить внимание, что Система засчитывает задание решенным, если хотя бы одно из отправленных решений был верным (если не оговорено другое). После него вы можете отправлять хоть 10 неверных ответов, однако в системе все равно будет зафиксировано, что вы давали верный ответ.
Если вы закончили решать задачи раньше установленного времени, то можете завершить соревнование и сохранить ваши результаты:
Если такой кнопки в контесте нет — ничего страшного. Соревнование завершится автоматически по достижению дедлайна.
Типы ошибок в Яндекс. Контест и способы их устранения.
Как уже было сказано выше, при отправке решений в Яндекс. Контест тестовая система может не принимать решения, выдавая некоторую ошибку. Возможные типы ошибок с их краткими описаниями уже приводились выше. Ниже будут более подробно разобраны некоторые ошибки и их возможные исправления.
CE (Compilation Error)
Данная ошибка возникает, если ваша программа написана не по правилам языка Python. Попробуйте сначала запустить вашу программу в Google Colab. При этом обратите внимание на следующие моменты:
- Не нужно забывать про отступы. Не нужно делать никаких лишних отступов. При этом, в каждом блоке должно быть одинаковое количество пробелов в качестве отступов (рекомендуется использовать 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 отступа
- Проверьте, что в качестве отступов везде используется либо только пробелы, либо только t. Обратите внимание, что Tab не всегда равен 8 проблелам. t и несколько пробелов – это разные символы. Поэтому если в программе для отступов используется и t, и пробелы – система может выдать ошибку.
- Не забывайте закрывать все скобки и кавычки. Например, ошибку CE вызывают следующие фрагменты кода:
print('str'
,print('123)
и т.д. - Проверьте наличие двоеточия после строчки с
if, else, for, while
(if x>y:
).
PE (Presentation error)
Данная ошибка может возникать, если формат вывода программы неверный.
При возникновении этой ошибки рекомендуется проверить следующее:
- В Google Colab для вывода значения переменной достаточно указать просто её имя:
Это допущение сделано для упрощения разработки. В Яндекс. Контесте такого нет. Необходимо явно использовать print()
, чтобы вывести значение переменной:
- Тестовая система проверяет ответ с эталонным посимвольно. Поэтому отличие хотя бы в одном символе может привести к ошибке. Поэтому перед отправкой решений проверяйте, что в программе нет лишних (или недостающих) пробелов, переходов на новую строку и других символов.
- Лишним также могут быть вспомогательные сообщения, которые указываются в параметрах
input()
илиprint()
, т.к. эти сообщения попадают в стандартный поток вывода и рассматриваются тестирующей системой как часть ответа.
Как правило, в задачах требуется просто ввести или вывести какие-то значения без каких-то дополнительных подсказок.
Т.е. не нужно писатьinput(“Введите число: ”)
илиprint(“Искомый результат: ”, res)
(здесь res — некоторая переменная, показывающая результат работы программы). Нужно писать простоinput()
илиprint(res)
.
RE (Runtime error)
Самая частая ошибка. Возникает, если код написан в целом по правилам языка Python, однако в ходе выполнения программы обнаруживаются какие-то ошибки.
При возникновении этой ошибки следует проверить следующее:
- Проверьте, что выполнены все рекомендации при возникновении ошибки Presentation error (эти же ситуации иногда могут приводить и к RE).
- Попробуйте запустить код в Google Colab и самостоятельно поискать ошибку.
- При использовании сторонних библиотек (
numpy
,pandas
,math
,fractions
,itertools
и др.) не забывайте делать соответствующийimport
:
- Если программа использует работу с файлами – проверьте точное совпадение имен входного и выходного файла в вашей программе с тем, что указано в условии.
- Проверьте, что имена стандартных функций и арифметические операции записаны верно (при этом не забывайте, что Python чувствителен к регистру букв, т.е.
Print()
иprint()
– это разные функции). Например,2^3
– неверная запись операции возведения в степень (нужно2**3
). Аналогично,Print('string')
– неверно, т.к. написано с большой буквы (верноprint('string')
). - Не забывайте, сколько и каких параметров принимает каждая функция. Например, функция
write()
принимает только одну строку в отличие отprint()
(который принимает сколько угодно параметров, а также именованные параметры вродеsep
иend
). Также функцияfloat()
принимает в качестве параметра строку, представляющую вещественное число, где в качестве разделителя используется точка, а не запятая. Т.е. записьfloat("3,14")
приведёт к ошибке (нужноfloat("3.14")
). - Проверьте, что нигде в вашей программе не может возникнуть деление на ноль при определённых входных данных или обращение к элементу списка/словаря с несуществующим индексом/ключом (например, для
lst=[1, 2, 3]
обращениеlst[500]
вызовет ошибку, т.к. элемента с индексом 500 в списке нет. Аналогично, для словаряd = {‘cat’: 3, ‘lion’: 2, ‘dog’: 7}
вызовет ошибку обращениеd[‘mouse’]
(т.к. такого ключа в словаре нет)).
WA (Wrong answer)
Эта ошибка возникает в том случае, когда код написан без ошибок, связанных с языком Python, однако где-то в логике программы присутствует ошибка.
Тестовая система проверяет ваш код на различных входных данных (так называемых тестах) и сверяет ответ работы программы с эталонным. Если хотя бы на одном тесте ответ отличается, программа выдаёт ошибку WA. При этом, в таблице с вердиктом (она находится внизу решения на сайте Яндекс. Контест) в строке, соответствующей ошибке WA в столбце «Тест» указывается номер теста, на котором ответ вашей программы не совпал с эталонным.
В случае возникновения этой ошибки, проверьте следующие моменты:
- Проверьте, что выполнены все рекомендации при возникновении ошибки Presentation error (эти же ситуации иногда могут приводить и к WA).
- Если ошибка возникает на тесте № 1 – следует проверить корректность работы программы на данных из условия (обычно в условии есть пример ввода и вывода).
- Если ошибка возникает на тесте с номером больше 1 – стоит внимательно перечитать условие и комментарии к нему и проверить, что всё учтено:
- Верно указаны имена входных и выходных файлов (если программа подразумевает работу с файлами).
- Соблюдён формат выходных данных (всегда печатается нужное количество знаков после точки в вещественных числах, в .csv-файлах используются верные разделители, а названия колонок в точности совпадают с теми, что требуются в условии).
- Попытайтесь подумать, на каких входных данных, которые не совпадают с примером из условия, но соответствуют условию, ваша программа может работать некорректно.
Я всё перепроверил 10 раз, но так и не понял в чём эта ошибка заключается. Надеюсь на вашу помощь
module.exports = function (N, staff, K) {
if (N === K){
return staff.reduce((accumulator, currentNumb) => accumulator += currentNumb, 0)
}
let maxNumbers = []
for (let i = 1; i <= K; i++){
let max = Math.max(...staff)
maxNumbers.push(max)
let indexOfMax = staff.indexOf(max)
staff.splice(indexOfMax, 1)
}
return maxNumbers.reduce((accumulator, currentValue) => accumulator += currentValue, 0)
}
-
Вопрос задан04 февр.
-
141 просмотр
Тебе надо сумму К самых крупных значений? Решение конечно так себе, O(n*k), я бы поюзал бинарную кучу…
Но если абстрагироваться от скорости, то не разобран кейс, когда К > N. И конечно, переполнение стека при достаточно большом массиве staff. Не используй Math.max(…staff), сделай нормальный человеческий цикл.
N — это ведь длина массива staff?
Пригласить эксперта
-
Показать ещё
Загружается…
07 июн. 2023, в 01:32
5000 руб./за проект
07 июн. 2023, в 00:54
15000 руб./за проект
07 июн. 2023, в 00:51
13000 руб./за проект
Минуточку внимания
Тренируюсь решать задачи Яндекса.
Вот условие:
Дан упорядоченный по неубыванию массив целых 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);
}
}
}
}