Условие задачи:
Билет на одну поездку в метро стоит 15 рублей, билет на 10 поездок стоит 125 рублей, билет на 60 поездок стоит 440 рублей. Пассажир планирует совершить
n поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше
n, а общая стоимость приобретенных билетов – минимальна.
Входные данные:
Дано одно число
n - количество поездок.
Выходные данные:
Выведите три целых числа, равные необходимому количеству билетов на 1, на 10, на 60 поездок.
В коде ниже представлен мой вариант решения этой задачи. Она проходит большую часть тестов. В комментарии расположен первоначальный алгоритм, который проходит тесты абсолютно также, как и незакомментированный (за исключением времени). Что я могу делать не так?
#include <stdio.h>
int main() {
int n, n10, n60;
scanf("%d", &n);
n60 = n / 60;
n = n % 60;
n10 = n / 10;
n = n % 10;
if (n > 8) {
n = 0;
n10++;
}
if (n10 > 3) {
n10 = 0;
n60++;
}
/*long sum = n*15 + n10*125 + n60*440;
long temp = (n10 + 1)*125 + n60*440;
if (temp < sum) {
n = 0;
n10++;
sum = temp;
}
if (440*(n60 + 1) < sum) {
n10 = 0;
n60++;
}*/
printf("%d %d %d", n, n10, n60);
return 0;
}