Туристическая фирма не успела из-за больших морозов продать 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.
*****
Комментариев нет:
Отправить комментарий