Cod sursa(job #589350)

Utilizator ScriamTertiuc Afanasie Scriam Data 11 mai 2011 22:03:12
Problema Jocul Flip Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.12 kb
Program filip;
var a,b,r : array[1..1000,1..1000] of integer;
    n,m,t,l,sm : integer;
    c : array[1..1000] of integer;

Procedure itire;
var fin : text;
    i,j : integer;
begin
assign(fin,'flip.in');
reset(fin);
readln(fin,n,m);
for i:=1 to n do
 for j:=1 to m do
 read(fin,a[i,j]);
close(fin);
end;


Function sumat : longint;
var i,j : integer;
begin
sumat:=0;
for i:=1 to n do
 for j:=1 to m do
 sumat:=sumat+b[i,j];
end;



Procedure incr;
var i : integer;
begin
t:=1;
for i:=n downto 1 do
begin
c[i]:=c[i]+t; if c[i]=2 then begin c[i]:=0; t:=1; end else t:=0;
end;
end;

Procedure calc;
var sc1,i,j,l : longint;
begin
sm:=-MaxInt;
repeat
b:=a;
sc1:=0;
for i:=1 to n do
if c[i]=1 then
for j:=1 to m do
b[i,j]:=-b[i,j];

for i:=1 to m do
 begin
  for j:=1 to n do
  sc1:=sc1+b[j,i];
  if sc1<0 then for l:=1 to n do b[l,i]:=-b[l,i];
  sc1:=0;
 end;

if sumat>sm then sm:=sumat;
incr;
until t=1;
end;

Procedure scrie;
var fout : text;
begin
assign(fout,'flip.out');
rewrite(fout);
writeln(fout,sm);
close(fout);
end;


begin
itire;
calc;
scrie;

end.