среда, 7 августа 2013 г.

6. Путёвки

 Туристическая фирма не успела из-за больших морозов продать n (n < 15) путёвок на горнолыжные базы, срок действия которых уже наступил. С целью уменьшения убытков, было решено с 1 февраля все такие путёвки, которым осталось dk (dk ≤ 30) дней, продавать по номинальной стоимости – по сk (сk ≤ 100) грн за день только за те дни, что остались со дня продажи (k = 1..n).
   На какую наибольшую сумму можно реализовать эти путёвки, если каждый день продавать по одной путёвке?
Код решения:
*****
 var
i,max,n:integer;
d,c:array[1..15] of integer;
procedure recurs(k,s:integer);
var
f,q,j:integer;
begin
f:=0;
for j:=1 to n do
    if d[j]>=k then
    begin
         q:=(d[j]-k+1)*c[j];
         f:=d[j];
         d[j]:=0;
         recurs(k+1,s+q);
         d[j]:=f;
         f:=1;
    end;
if f=0 then
   if max<s then max:=s;
end;
begin
   read(n);
   for i:=1 to n do
       read(d[i],c[i]);
   recurs(1,0);
   writeln(max);
end.
*****

Комментариев нет:

Отправить комментарий