|
34 / 25 / 8
Регистрация: 16.11.2019
Сообщений: 179
|
|
Клиппи и Мерлин25.03.2020, 13:03. Показов 3313. Ответов 31
Метки нет (Все метки)
Клиппи и Мерлин решили грабить банк, который представляет собой N расположенных в ряд банковских ячеек, пронумерованных последовательно числами от 1 до N.
С помощью своего друга Ровера, который работал в банке сторожевым псом, они добыли ключи от всех ячеек, а так же узнали, как много ценностей хранится в каждой ячейке. Чтобы не вызывать лишних подозрений, Клиппи и Мерлин решили ограбить всего две ячейки — по одной на каждого. Также, чтобы охрана банка не почуяла неладного, они решили работать далеко друг от друга — между ними должно быть не меньше K банковских ячеек. Входные данные В первой строке вводятся два числа — N ( 2 ≤N≤ 105) и K (0 ≤K<N− 1) соответственно. В второй строке вводятся N чисел ai(0 ≤ai≤ 109) — стоимости хранимых ценностей в ячейках от 1 до N соответственно. Выходные данные Выведите два числа в возрастающем порядке — номера ячеек, которые нужно ограбить, чтобы суммарно украсть как можно более дорогие ценности, не вызвав при этом лишних подозрений. Если вариантов несколько выберите тот, в котором меньший номер вскрываемой ячейки был как можно ближе к единице, чтобы в экстренном случае покинуть банк как можно скорее. Если и таких вариантов несколько, выберите тот, в котором и больший номер вскрываемой ячейки был как можно меньше.
0
|
|
| 25.03.2020, 13:03 | |
|
Ответы с готовыми решениями:
31
Клиппи и Мерлин грабят банк Клиппи и Мерлин грабят банк Клиппи и Мерлин грабят банк |
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|
| 30.03.2020, 16:47 | |
|
klopp, с формулировкой задачи плохо вяжется - это я про "суммарно украсть как можно более дорогие ценности". Ну ок. Оттолкнемся от этого - чуть позже отпишу вариант. Красиво напишу, понятненько
0
|
|
|
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
|
|
| 30.03.2020, 16:49 | |
|
мой код выдает на ваш массив [1, 19] (это с +1 к индексам массива)
Qwerty_Wasd, Да, но важнее не попасться охране )) именно для этого диапазон между ячейками
1
|
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 30.03.2020, 17:16 | |
|
2
|
|
| 30.03.2020, 17:19 | |
|
0
|
|
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
||||||
| 30.03.2020, 18:17 | ||||||
0
|
||||||
|
|
||
| 30.03.2020, 20:29 | ||
|
Ответ: 0,18. ТО есть числа 128 + 11272 (максимально доступная сумма по ограничениям в k-позиций) Если бы была еще одна точно такая же сумма - выбор был бы за той, чья первая ячейка ближе к выходу. Вторая ячейка должна быть обязательно. Просто алгоритм должен найти любую подходящую пару удовлетворяющую условию к-позиций. Если шаг равен длине массива - 2 (максимальный шаг), то пара это первый и последний элемент. Других вариантов нет - берем что можем. Если шаг равен длине массива -3, то пара это либо первый и последний элемент, либо первый и предпоследний, либо второй и последний. В этом случае так как есть варианты должен выбраться максимум из трех доступных. И т.д. То есть каждый из грабителей должнен унести из банка хоть что-то в любом случае. Даже если это и не будет максимум по сумме - в силу ограничения к-позиций. По крайней мере, именно так работает код который проходит все тесты по правильным ответам и сложности. ------------------------------ Вы убрали из своей реализации явные циклы, но ввели скрытые (indexOf, max, sort и т.д.) Вы считали какая конечная сложность выходит? Уже далеко не O(N). --------------------------------------------------------------------------------------- Господа, решения с двумя вложенными циклами можно не приводить. Они слишком очевидны, известны и не являются алгоритмически интересными в силу квадратичной сложности.
2
|
||
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
||||||
| 30.03.2020, 21:36 | ||||||
|
Могу предложить частичное решение для k >= array.length / 2
Там же пара элементов может находиться недопустимо близко. Напрашивается решение скидывать возможные пары в отдельную коллекцию, но пахнет неправильным решением.
0
|
||||||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||||||
| 31.03.2020, 19:25 | ||||||
|
Garry Galler, ну вроде по тестам проходит - https://codepen.io/qwerty_wasd/pen/bGdOOgJ
Не O(n), но асимптотика линейная, если грубо O(2n). Форм-фактор тестов оставил для песочницы, ибо не всяк зашедший сюда знает что такое нода и с чем её едят. Комменты на инглише - лень раскладку менять было. За грамматику и семантику сразу прошу прощения - почти нет практики.
Не по теме: Потом, как посвободнее буду - почищу код маленько ... в своей манере ![]() Не по теме: А то с этим coronavirinae столько оказывается дел по дому ![]() Добавлено через 5 минут Garry Galler, да и чуть не забыл - если не трудно, покажите пожалуйста решение на которое вы ориентировались.
0
|
||||||
|
|
||
| 31.03.2020, 21:41 | ||
|
В Python варианте В этом же топике есть и мой личный вариант с сортировкой, но он хотя и быстро работает, все-таки оказался в том виде неверным. Я его позже допилил до правильного, но только за счет усложнения асимптотики. Добавлено через 10 минут P.S. Да, есть еще определенная уверенность, что можно сделать ровно за один цикл. Но она пока не допиливается... :-)
0
|
||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|
| 31.03.2020, 21:42 | |
|
0
|
|
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
||||||
| 02.04.2020, 03:17 | ||||||
0
|
||||||
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
||||||
| 02.04.2020, 12:42 | ||||||
0
|
||||||
| 02.04.2020, 12:42 | |
|
Помогаю со студенческими работами здесь
32
Клиппи и Мерлин грабят банк Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
|