![]() |
|
Модераторы: Alx, Fixin |
![]()
|
|
| Strannik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.1.2007 Репутация: нет Всего: 2 |
3. У Васи есть один пакет Donstar, на счету которого находится сумма So, и п пакетов dwater.
на каждом из которых есть определенная сумма денег 5,. Компания Donstar объявила новую акцию "Плати бiльше та не розмовляй", и Вася хочет принять в ней участие. Для этого необходимо, чтобы на счету была сумма не меньше S. Вася сейчас "на мели", поэтому он не хочет покупать ваучер пополнения счета, чтобы пополнить свой "Donstar" до нужной суммы. И выход есть - компания Donstar предоставляет своим абонентам такую услугу как передача денег от одного абонента другому. При этом, пересылать можно только целое число гривен, не меньшее 5, да так, чтобы на счету после этого осталось как минимум 5 гривен. Сама пересылка стоит 10 копеек. Таким образом, чтобы совершить пересылку, на счету должно быть как минимум 10 грн. 10 коп. dwater входит в сеть Donstar, поэтому абоненты dwater тоже могут совершить пересылки на номера Donstar. Вася хочет пополнить свой счет "Donstar" до суммы S за наименьшее число пересылок, поскольку каждая пересылка стоит 10 коп, а копейка, как известно, рубль, т.е. гривну, бережет. Задание. Написать программу TRANSFER, которая по заданным состояниям всех счетов находит наименьшее количество пересылок, необходимых для пополнения счета на карточке "Donstar" Васи до нужной суммы. Входные данные. В первой строке текстового файла TRANSFER.DAT находится три целых числа: и- количество Васиных счетов dwater (0<и<1000), So- сумма денег на карточке "Donstar" и S - сумма, которую необходимо иметь на счету, чтобы вступить в акцию. Во второй строке записаны через пробел состояния счета на карточках dwater: S1, S2, ..., S„. Все числа S, Sj- действительные числа из промежутка [0.01,10000.00], заданные ровно с двумя знаками после запятой (т.е. с точностью до копеек). Выходные данные. Вывести в единственной строке текстового файла TRANSFER.SOL наименьшее количество пересылок, необходимых для того, чтобы Вася смог принять участие в акции, или -1, если участие Васи в акции невозможно. Пример входных и выходных данных TRANSFER.DAT TRANSFER.SOL 2 10.00 26.00 2 10.10 16.10 Если есть ошибки - извините, ФайнРидером перевёл в текст и не вычитывал особо... |
|||
|
||||
| FireSnake |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 15.9.2006 Где: Украина, Донецк Репутация: нет Всего: 1 |
Задача легкая, но никто не заметил, что передавать можно (и в некоторых тестах нужно)с дивотера на дивотер или с ДонСтара на дивотер. Ведь может возникнуть такая ситуация, что на счету одного дивотера скажем 7 грн и исходя из условия мы не можем перекинуть с него на ДонСтар, но можем перекинуть (если там есть соответствующая сумма)с ДонСтара все деньги на этот дватер и затем назад на Донстар.
А так просто мы все сортировали и тупо жадничали. В итоге у меня задача набрала 36/100 балов. У Странника кажись так же |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |