Cod sursa(job #1453997)

Utilizator mihaitamoglanmihai moglan mihaitamoglan Data 25 iunie 2015 11:32:56
Problema Jocul Flip Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.71 kb
type matrice=array [1..16,1..16]of longint;
var a:matrice;
    i,j,k,m,n,p,q,x,y,s,s1,s2,max:longint;
    f,g:text;
    b:boolean;
begin
assign(f,'flip.in');
assign(g,'flip.out');
reset(f);
rewrite(g);
read(f,n,m);
for i:=1 to n do
  for j:=1 to m do
   read(f,a[i,j]);
b:=true;
max:=-maxint;
while b do
 begin
    s1:=-maxint;
    s2:=-maxint;
    for i:=1 to n do
     begin
     for j:=1 to m do
      a[i,j]:=-a[i,j];
      s:=0;
     for p:=1 to n do
      for q:=1 to m do
       s:=s+a[p,q];
       if (s>s1)and(s>max) then begin
                                        s1:=s;
                                        x:=i;
                                  end;
      for j:=1 to m do
       a[i,j]:=-a[i,j];
      end;
    for j:=1 to m do
     begin
     for i:=1 to n do
      a[i,j]:=-a[i,j];
      s:=0;
     for p:=1 to n do
      for q:=1 to m do
       s:=s+a[p,q];
       if (s>s2)and(s>max) then begin
                                        s2:=s;
                                        y:=j;
                                  end;
      for i:=1 to n do
       a[i,j]:=-a[i,j];
      end;
    if (s1>s2)and(s1>max) then begin
                                max:=s1;
                                b:=false;
                                for j:=1 to m do
                                 a[x,j]:=-a[x,j];
                               end
    else if (s2>s1)and(s2>max) then  begin
                                     max:=s2;
                                b:=false;
                                for i:=1 to n do
                                 a[i,y]:=-a[i,y];
                               end;
  b:=not(b);
 end;
write(g,max);
close(f);
close(g);
end.