Cod sursa(job #159605)

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

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

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

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

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

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

procedure flipc (j:integer; var a:tabla);
var i:1..16;
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);
close (f);
close(g);
end.