e-olymp 107. Компакт-диски

Задача взята с сайта e-olymp.com.

Задача

Чистые компакт-диски продают в трёх видах упаковок. Упаковка из 100 дисков стоит 100 грн., из 20 дисков — 30 грн., а один диск стоит 2 грн. Какую минимальную сумму нужно истратить для покупки [latex] n [/latex] таких дисков?

Входные данные

Количество дисков [latex] n (n ≤ 1000)[/latex].

Выходные данные

Вывести минимальную сумму в гривнах для покупки [latex] n [/latex] дисков.

Тесты

Входные данные (число [latex] n [/latex]) Выходные данные (минимальная сумма, грн.)
1. 17 30
2. 7 14
3. 123 136
4. 24 38
5. 173 200
6. 108 116
7. 136 160

 

Код программы

Решение

Для решения этой задачи мы должны вывести минимальную сумму для покупки[latex] n [/latex] дисков. Следует отметить, что для заданного числа [latex] n [/latex] дисков нам надо определить минимальную сумму, при этом мы можем покупать упаковку с большем количеством дисков, чем нужное нам [latex] n [/latex], если при этом итоговая сумма покупки получится меньше. Таким образом, мы аналитически определили, что если [latex]n\mod100 > 65[/latex] то экономней будет приобрести большую упаковку на 100 дисков за 100 грн., чем несколько более маленьких упаковок по 30 грн., и соответственно при [latex]n\mod20 > 15 [/latex] лучше приобрести одну упаковку на 20 дисков за 30 грн., чем по одному за 2 грн.

Оригинальное решение: cpp.mazurok.com.
Рабочий код для тестирования на try.haxe.org: Try Haxe !

One thought on “e-olymp 107. Компакт-диски

  1. Зачем так сложно? Достаточно двух проверок:

Добавить комментарий