FPCБилет на одну поездку в метро стоит 15 рублей, билет на 10 поездок стоит 125 рублей, билет на 60 поездок стоит 440 рублей. Пассажир планирует совершить n поездок. Определите, сколько билетов каждого вида он должен приобрести...

FPC Билет на одну поездку в метро стоит 15 рублей, билет на 10 поездок стоит 125 рублей, билет на 60 поездок стоит 440 рублей. Пассажир планирует совершить n поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов – минимальна. Формат входных данных Дано одно число n - количество поездок. Формат выходных данных Выведите три целых числа, равные необходимому количеству билетов на 1, на 10, на 60 поездок. Примеры Входные данные 129 Выходные данные 0 1 2 расбор..... Целая часть от деления n на 60 будет являтся количеством билетов на 60 поездок. Однако если остаток, полученый в результате этого деления, будет больше или равен 35, то "выгоднее" купить ешё 1 билет на 60 поездок, чем 3 на 10 и 5 на 1. Если остаток меньше 35 - берем целую часть от его деления на 10 - получим кол-во белетов на 10 поездок. Если остаток от этого деления равен 9, то "выгоднее" купить ещё 1 билет на 10 поездок, чем 9 на 1. Если остаток меньше 9 - то этот остаток и будет являться кол-вом билетов на 1 поездку. вопрос... что не так с моим кодом? var l,k,j,t,m,p,s,n:longint; begin read(n); l:=n div 60; k:=n mod 60; j:=k div 10; t:=k mod 10; if l>=1 then s:=l; if k>=35 then s:=l+1 else if k<35 then p:=j; if t=9 then p:=j+1 else if t<9 then m:=t; writeln(m,' ',p,' ',s) end.
Гость
Ответ(ы) на вопрос:
Гость
var  n,i : integer;      a : array [1..3] of integer;  begin Read(n);  While n>=35 do    begin   inc(a[3]);   n:=n-60;  end;  While n>=9 do    begin   inc(a[2]);   n:=n-10;   end;  While n>=1 do    begin   inc(a[1]);   dec(n);   end;  for i:=1 to 3 do   Write(a[i], ' ');  end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы