Условие задачи:
Билет на одну поездку в метро стоит 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;
}