Cod sursa(job #159587)

Utilizator eddybbosnea raul eduard eddyb Data 14 martie 2008 11:33:01
Problema Jocul Flip Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.14 kb
program flip;
type tabla=array[1..16,1..16] of -1000000..1000000;
var
f,g:text;
a:tabla;
s,m,n,i,j:integer;

function sl1 (i:integer):integer;
var j,s:integer;
begin
s:=0;
for j:=1 to m do s:=s+a[i,j];
sl1:=s;
end;

function sl2 (i:integer):integer;
var j,s:integer;
begin
s:=0;
for j:=1 to m do s:=s-a[i,j];
sl2:=s;
end;

function sc1 (j:integer):integer;
var i,s:integer;
begin
s:=0;
for i:=1 to n do s:=s+a[i,j];
sc1:=s;
end;

function sc2 (j:integer):integer;
var i,s:integer;
begin
s:=0;
for i:=1 to n do s:=s-a[i,j];
sc2:=s;
end;

procedure flipl (i:integer;var a:tabla);
var j:integer;
begin
for j:=1 to m do a[i,j]:=a[i,j]*(-1);
end;

procedure flipc (j:integer; var a:tabla);
var i:integer;
begin
for i:=1 to n do a[i,j]:=a[i,j]*(-1);
end;

begin
assign (f,'flip.in'); reset(f);
assign (g,'flip.out'); rewrite (g);
read (f,n);
readln (f,m);
for i:=1 to n do begin
    for j:=1 to m do
        read (f,a[i,j]);
        end;
for i:=1 to n do
 if  (sl2(i)>sl1(i)) then flipl(i,a);
for j:=1 to m do
     if (sc2(j)>sc1(j)) then flipc(j,a);
s:=0;
for i:=1 to n do
 s:=s+sl1(i);
write (g,s);
end.