program z_1;
uses xcrt;
const
    name: array[0..6] of string[12] = ('          ','Правда    ','Speed-Info','Известия  ',
					 'Сум. прибыль','Ср.газеты','Доп. газеты');
 type
    tl = record
	   c,n: real;
	 end;
    tar = array[1..3,0..5] of tl;
    tarMax = array[1..3] of tl;
    tjo = array[1..3] of integer;
var i,j,r:integer;
    s,p:string;
    k: byte;
   ar,dob: tar;        {массив прибылей за месяц и массив "добавок"}
   arMax: tarMax;
   jo: tjo;
   gon,procent: array[1..3] of real;
    pok: array[1..3] of real;
    voz: array[1..3] of real;
   x1,x2,x3,x4,Sum: real;
   a,b,g: integer;
    f,pokup,prosr,proc: text;
    tab:array[0..5,0..3] of integer;
begin
clrscr;
Writeln(' Ввод данных по спросу на газеты производится в spros.txt');
Writeln(' Ввод данных по ценам закупки газет производится в pokupka.txt');
Writeln(' Ввод данных по ценам возврата газет производится в prosroch.txt');
Writeln(' Ввод данных о вероятности доп.прибыли производится в procent.txt');
{Берем данные по спросу на газеты из фаила spros.txt}
assign(f,'.\spros.txt');
reset(f);
i:=0;
while not eof(f) do
begin
readln(f,s);
s:=s+' ';
  for j:=0 to 3 do
    begin
      p:=copy(s,1,pos(#32,s)-1);
{      writeln(p,i,j,r);}
      val(p,tab[i,j],r);
      delete(s,1,pos(#32,s));
    end;
i:=i+1;
end;
close(f);
{Берем данные по цене закупки  газет из фаила pokupka.txt}
assign(pokup,'pokupka.txt');
reset(pokup);
while not eof(pokup) do
begin
readln(pokup,s);
s:=s+' ';
  for j:=1 to 3 do
  begin
     p:=copy(s,1,pos(#32,s)-1);
     val(p,pok[j],r);
     delete(s,1,pos(#32,s));
  end;
end;
close(pokup);
{Берем данные по цене возврата  газет из фаила prosroch.txt}
assign(prosr,'prosroch.txt');
reset(prosr);
while not eof(prosr) do
begin
readln(prosr,s);
s:=s+' ';
  for j:=1 to 3 do
  begin
     p:=copy(s,1,pos(#32,s)-1);
     val(p,voz[j],r);
     delete(s,1,pos(#32,s));
  end;
end;
close(prosr);
{Берем данные o вероятности доп.прибыли  газет из фаила procent.txt}
assign(proc,'procent.txt');
reset(proc);
while not eof(proc) do
begin
readln(proc,s);
s:=s+' ';
  for j:=1 to 3 do
  begin
     p:=copy(s,1,pos(#32,s)-1);
     val(p,procent[j],r);
     delete(s,1,pos(#32,s));
  end;
end;
close(proc);

{Инициализация переменных}
    Sum:=0;
    x1:=0; x2:=0; x3:=0; x4:=0;
    for i:=1 to 3 do begin arMax[i].c:=0; jo[i]:=0; gon[i]:=0 end;
    for i:=1 to 3 do
      for j:=0 to 5 do begin dob[i,j].c:=0; end;
{Расчет чистой прибыли(без учета сверхприбыли)}
    for i:=1 to 3 do
     begin
      case i of
	1: begin a:=2; b:=3; end;
	2: begin a:=1; b:=3; end;
	3: begin a:=1; b:=2; end;
       end;
      for j:=0 to 5 do
	 begin
	   for k:=j to 5 do x1:=x1+tab[k,i];{Суммарное кол-во газет}
	   for k:=j downto 1 do x2:=x2+tab[k,i]*tab[k,0];{Прибыль без учета просроченных}
	   x4:=tab[1,i]+tab[2,i]+tab[3,i]+tab[4,i]+tab[5,i];
	   x3:=x4-x1;
	   x1:=tab[j,0]*x1;
	   ar[i,j].c:=x1+x2*pok[i]*2+(tab[j,0]*x3-x2)*voz[i]-
		 pok[i]*tab[j,0]*x4;{Прибыль с учетом просроченных}
	   x1:=0; x2:=0; x3:=0; x4:=0;
{Расчет добавочной прибыли}
	   if j<>5 then
	      begin
		for k:=j to 4 do dob[i,j].n:=dob[i,j].n+(tab[k+1,0]-tab[j,0])*tab[k+1,i];
		dob[i,j].n:=trunc(dob[i,j].n*Procent[i]);
	      end
	     else dob[i,j].n:=0;
	   dob[i,j].c:=dob[i,j].n*pok[a]*2+dob[i,j].n*pok[b]*2;
	   ar[i,j].c:=ar[i,j].c+dob[i,j].c;
	   ar[i,j].n:=tab[j,0];
	 end;
     end;
{Поиск max прибыли}
    for i:=1 to 3 do
     begin
      for j:=0 to 5 do
	begin
	  if ar[i,j].c > arMax[i].c then
	      begin
		arMax[i].c:=ar[i,j].c;
		jo[i]:=j
	      end;
	end;
	arMax[i].c:=arMax[i].c-dob[i,jo[i]].c;
	arMax[i].n:=ar[i,jo[i]].n;
      end;
{Суммирование основной и добавочной прибыли}
     for i:=1 to 3 do
       begin
	 case i of
	  1: begin a:=2; b:=3; end;
	  2: begin a:=1; b:=3; end;
	  3: begin a:=1; b:=2; end;
	 end;
	 arMax[i].c:=arMax[i].c+dob[a,jo[a]].n*pok[i]*2+dob[b,jo[b]].n*pok[i]*2;{Прибыль+Сверхприбыль}
	 arMax[i].n:=arMax[i].n;{Кол-во "основных газет" }
	 gon[i]:=(dob[a,jo[a]].n+dob[b,jo[b]].n)/100;{Кол-во "дополнительных"газет}
       end;
{Вывод результатов}
     writeln('          покупка   возврат процент');
     for i:=1 to 3 do
	writeln(name[i],' ',pok[i]:2:2,
	'   ',voz[i]:8:2,'  ',procent[i]:8:2);
     for i:=0 to 3 do
       begin
	 write(name[i],' ');
	 for j:=0 to 5 do write('  ',tab[j,i]);
	 writeln;
       end;
     writeln;
     writeln(' Сводная таблица прибыли за 100 дней: ');
     write('            ');
     for j:=0 to 5 do write(tab[j,0]:8);
     writeln;
     for i:=1 to 3 do
       begin
	 write(name[i],'   ');
	 for j:=0 to 5 do write(ar[i,j].c-dob[i,j].c:7:0,' ');
	 writeln;
       end;
     writeln;
     writeln(' Результаты: ');
     write('            ');
     for i:=4 to 6 do write(name[i]:16);
     writeln;
     for i:=1 to 3 do
       begin
	 Sum:=Sum+arMax[i].c/100;
	 arMax[i].n:=trunc(arMax[i].n);
	 write(name[i],' ');
	 write(arMax[i].c/100:15:2,' ',arMax[i].n:15:2,' ',gon[i]:15:2);
       writeln
       end;
    writeln(' Чистый доход составит ',Sum:4:2);
readln;
end.