Cod sursa(job #1527386)

Utilizator gra99Graur Gabriel gra99 Data 18 noiembrie 2015 00:49:52
Problema Jocul Flip Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.69 kb
program flip;
   var f,g:textfile;
   a:array[1..20,1..20] of longint;
   m,n,i,j:byte;
   s,k,sum,sum1,sum2,sum3:longint;
 begin
 assign(f,'flip.in');reset(f);
 assign(g,'flip.out');rewrite(g);
 read(f,n,m);
 if (m<=16) and (n<=16) then begin
 s:=0;k:=0;sum1:=0; sum:=1;sum2:=0;sum3:=1;
 for i:=1 to n do
     for j:=1 to m do read(f,a[i,j]);
     if (a[i,j]>=-1000000) and (a[i,j]<=1000000) then
  begin
  while (sum<>sum1) and(sum2<>sum3) do begin
  for i:=1 to n do begin
     for j:=1 to m do
                      begin
                      if a[i,j]>=0 then s:=s+a[i,j] else
                                                     if a[i,j]<0 then k:=k+a[i,j];
                      end;
                      if (abs(s)<abs(k)) or (s=0) then for j:=1 to m do a[i,j]:=-1*a[i,j];
                      s:=0;k:=0;
                   end;
                   sum:=0;
     for i:=1 to n do
            for j:=1 to m do
                      sum:=sum+a[i,j];
 for j:=1 to m do begin
               for i:=1 to n do
                                begin
                                 if a[i,j]>=0 then s:=s+a[i,j] else
                                                     if a[i,j]<0 then k:=k+a[i,j];
                                 end;
                                 if (abs(s)<abs(k)) or (s=0) then   for i:=1 to n do a[i,j]:=-1*a[i,j];
                                s:=0;k:=0;
                     end;
                     sum2:=0;
 for i:=1 to n do
            for j:=1 to m do
                      sum2:=sum2+a[i,j];
   for i:=1 to n do begin
     for j:=1 to m do
                      begin
                      if a[i,j]>=0 then s:=s+a[i,j] else
                                                     if a[i,j]<0 then k:=k+a[i,j];
                      end;
                      if abs(s)<abs(k) then for j:=1 to m do a[i,j]:=-1*a[i,j];
                      s:=0;k:=0;
                   end;
          sum1:=0;
     for i:=1 to n do
            for j:=1 to m do
                      sum1:=sum1+a[i,j];
 for j:=1 to m do begin
               for i:=1 to n do
                                begin
                                 if a[i,j]>=0 then s:=s+a[i,j] else
                                                     if a[i,j]<0 then k:=k+a[i,j];
                                 end;
                                 if (abs(s)<abs(k)) or (s=0) then   for i:=1 to n do a[i,j]:=-1*a[i,j];
                                s:=0;k:=0;
                   end;
                   sum3:=0;
 for i:=1 to n do
            for j:=1 to m do
                      sum3:=sum3+a[i,j];
                      end;
 writeln(g,sum3);
 end;
 end;
 close(f);
 close(g);
 end.