var ma:array of array of integer;
i,j,n:integer;

procedure diagonal(var mas:array of array of integer;m:integer);
var sum: array of integer;
p,t,k,i,j: integer;
begin
setlength(sum,m*2-3);
k:=1;
for t:=1 to m-1 do
 if k<m-1 then
  begin
   inc(k);
   i:=k;
   j:=1;
    while (i>=1) and (j <= k)  do
     begin
      sum[t]:=sum[t]+mas[i,j];
      i:=i-1;
      j:=j+1;
     end;
  end;
writeln;
p:=1;
for t:=m-1 to m*2-2 do
  if p <m-1  then
   begin
    k:=m;
    inc(p);
    i:=k;
    j:=p;
      while  (j <= k)  do
       begin
         sum[t] := sum[t] + mas[i, j];
         i:=i-1;
         j:=j+1;
       end;
   end;
p:=t;
writeln('Cуммы диагоналей:');
var max:=sum[1];
for t:=1 to m*2-4 do
  begin
    write(sum[t],' ');
       if sum[t]>max then max:=sum[t];
  end;
writeln(#10,'Max:', max);
end;

begin;
randomize;
writeln('Enter matrix size:');
readln(n);
setlength(d,n+1);
setlength(ma,n+1);
for i:=1 to n do
setlength(ma[i],n+1);
writeln('Matrix:');
for i:=1 to n do
 begin;
   writeln;
    for j:=1 to n do
    begin;
      read(ma[i,j]);
      write(' ');
    end;
 end;
writeln;
writeln('Matrix:');
for i:=1 to n do
 begin;
   writeln;
    for j:=1 to n do
    write(ma[i,j]:4);
 end;

 diagonal(ma,n);
 end.
 
