|
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
|
||||||
Задача про кошелек. Проходит 8 тестов из 1007.09.2018, 21:53. Показов 1824. Ответов 20
Доброе время суток, решаю задачу (под спойлером), мое решение проходит 8 из 10 тестов. Я пробовал учесть что если "цены" всех покупок 0(пропускаем нулевые покупки, и если в итоге все нули, то выводим 0 -1, если нет, то выводим полноценно, но с пропуском 0й), пробовал что бы оно каждый 0 считало как покупка (так работает код под спойлером), отрицательный вариант на балансе на картах тоже пробовал, что пропускаем их. Что я мог не учесть, подскажите пожалуйста. Реализация кода который проходит 8 из 10 прилагается.
Задание
Разработайте программу распределения платежей .
Чтобы сохранить деньги, есть только один кошелек , и может быть несколько банковских счетов. Платежи за покупки поступают из кошелька. Если кошелек не имеет достаточной суммы, деньги изымаются с банковского счета (ов); снятая сумма в два раза больше, чем покупка, независимо от того, сколько денег в кошельке. Если баланс на счете недостаточен для этой операции, деньги также берутся из следующей учетной записи. Гарантируется, что банковские счета имеют достаточно денег для необходимых снятий. Входные данные: 1. Целое число , сумма денег в кошельке . 2. Массив целых чисел, где каждый номер представляет собой сумму денег на банковском счете . 3. Номер прекращения -1. 4. Массив целых чисел, где каждый номер представляет собой сумму покупки . 5. Номер окончания -1. Вывод: 1. Количество покупок . 2. Массив целых чисел, где номер завершения -1 разделяет остатки на всех банковских счетах после каждой покупки . Пример: Вход : 100 500 200 1000 -1 50 200 600 -1 Вывод: 3 500 200 1000 -1 100 200 1000 -1 0 0 100 -1 Расчет: Расходы 50 : Баланс: Кошелек: 50 Банковские счета: 500 200 1000 Выход: 500 200 1000 -1 Расходы 200: Снятие 400 с первой учетной записи Баланс: Кошелек: 50 + 400-200 Банковские счета: 500-400 200 1000 Выход: 100 200 1000 -1 Расходы 600: Сумма отзыва 1200 : ·100 из первой учетной записи ·200 со второго счета ·900 с третьего счета Баланс: Кошелек: 250 + 1200-600 Банковские счета: 100-100 200-200 1000-900 Выход: 0 0 100 -1 Код
0
|
||||||
| 07.09.2018, 21:53 | |
|
Ответы с готовыми решениями:
20
Динамика - задача про Кузнечика с монетками. Не проходит по времени три теста
Задача про взлом кода из книги Эрика Фримена про основы javascript в конце 5 главы. |
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||
| 07.09.2018, 23:16 | ||
|
RamzezUA, а какие ограничения накладываются на программу и на вводимые значения?
Добавлено через 37 секунд
0
|
||
| 07.09.2018, 23:20 | |
|
Не по теме: nonedark2008, using OOP
0
|
|
|
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
|
|
| 07.09.2018, 23:38 [ТС] | |
|
nonedark2008
Прошу прощение, забыл указал. Ограничений по времени и памяти не указано, ошибка - неверный результат. Разве-что сказано что все числа влазят в 4х байтовый целочисленный тип со знаком.
0
|
|
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
| 08.09.2018, 00:15 | |
|
RamzezUA, не вижу в твоем алгоритме каких-либо ошибок.
0
|
|
|
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
|
|
| 08.09.2018, 00:36 [ТС] | |
|
nonedark2008
В том то и суть что вроде ошибок нет, а именно 2 теста не проходит, и именно последние, хотя вряд-ли это о чем-то говорит в принципе. По этому и обратился к людям, может кто подскажет какую ситуацию я упустил для обработки, что может приводить к ошибке в результате, Указано как знаковый, т.е. вариант с отрицательным балансом на карте возможен, и мы просто пропустим его как и нулевой - такое проверялось. Цена на покупку если отрицательна, это как-то алогична. Если 0, непонятно как обрабатывать, то ли как покупку (прямо как кража или приз) или вообще не обрабатывать. Ах мой мозг....
0
|
|
|
|
|
| 08.09.2018, 00:45 | |
|
0
|
|
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||
| 08.09.2018, 00:52 | ||
|
RamzezUA, просто забей, или задолбай мозг автору этой задачи. Не стоит гадать, что же там такое подразумевал автор, когда писал вот это. Также может оказаться, что тесты неверны.
Добавлено через 4 минуты
0
|
||
|
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
|
|
| 08.09.2018, 00:54 [ТС] | |
|
Kuzia domovenok
Та вроде нет. Там какая логика. У нас есть двойное снятие дбл_мани. Если он больше чем денег на банковском счету, мы уменьшаем дбл_мани на то что есть на счету и просто обнуляем счет и так по кругу пока дбл_мани не обнулится. Оно не правильно посчитает если на счету минус будет, но когда я отбрасывал счета которые <= 0, то результат такой же был, 8/10. nonedark2008 Я бы ой как с радостью, но это тесты для прохождения перед собеседованием, так как первую работу ищу. И задача осталась последней. Я там у них налюбился с другим тестом, где считало все хорошо, но им вывод не нравился, хотя подогнал под их требования, пока просто не влупил setprecision(12), прошло. Смотря как смотреть на задачу. Если условная персона набрала кредитов на этот счет, то баланс может быть минусом, но мы с ним просто ничего не сделаем и пропускаем же. Если те же деньги которые на руках, мы можем компенсировать, то минус на балансе никак.
0
|
|
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
||||||
| 08.09.2018, 01:02 | ||||||
|
Я упоролся и написал свою реализацию.
Если ТС не лень, проверь, пожалуйста. Кликните здесь для просмотра всего текста
1
|
||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|||
| 08.09.2018, 01:11 | |||
|
Добавлено через 2 минуты
0
|
|||
|
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
|
|
| 08.09.2018, 01:18 [ТС] | |
|
New man
За упоротость спасибо, но результат тот же) 8/10, последние 2 - wrong result nonedark2008 Не прийдется, не зашла
0
|
|
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|
| 08.09.2018, 01:33 | |
|
Видимо, либо условие неправильное, либо предполагается в качестве целых чисел использовать длинную арифметику.
0
|
|
|
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
|
|
| 08.09.2018, 01:37 [ТС] | |
|
New man, вот как раз в том то и вопрос, что эму то и не нравиться, но пока я на этот вопрос не имею ответа(
0
|
|
|
|
|
| 08.09.2018, 02:34 | |
|
ну в условии нет вообще ничего об ограничениях на данные. Обычно так не поступают.
Нужна длинная арифметика или не нужна обычно сразу понятно из условия, в котором даны максимумы данных или что-то подобное. Где гарантия, что там файл не на 10 терабайт из сороказначных чисел?
0
|
|
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 08.09.2018, 05:32 | |
|
RamzezUA, я пока вижу единственное слабое место: если сумма покупки будет слишком велика, то вычисление dbl_purchase может привести к переполнению
0
|
|
|
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
|
|
| 08.09.2018, 12:59 [ТС] | |
|
Black Fregat, Хм, как вариант, но не понятно какой у них размер типов, ведь с условиями о 4х байтах, у меня другие задачи проходили с простым интом
0
|
|
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 08.09.2018, 13:52 | |
|
Я просто пока больше не вижу возможных проблем
0
|
|
|
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
|
|
| 08.09.2018, 17:23 [ТС] | |
|
Black Fregat, Спасибо за помощь, попробую еще что подумать, если пройдет, выкину ответ сюда, а если нет, значит не судьба мне туда даже пытаться идти)
0
|
|
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|
| 09.09.2018, 20:24 | |
|
RamzezUA, а там на питоне сдать нельзя?
0
|
|
| 09.09.2018, 20:24 | |
|
Помогаю со студенческими работами здесь
20
Задача не проходит по времени 2 теста acm.timus не проходит задача Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|