Cod sursa(job #75671)

Utilizator tebanadrianteban adrian tebanadrian Data 4 august 2007 20:29:19
Problema Jocul Flip Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.17 kb
 program flip11;
 type mat= array[1..5,1..5]of integer;
 var m,n:byte;
     s:longint;
     i,j:byte;
     a:mat;
 procedure citire;
 var f:text;
     i,j:byte;
 begin
 assign(f,'flip.in');
 reset(f);
 read(f,n);
 readln(f,m);
 for i:=1 to n do
 begin
 for j:=1 to m do
 read(f,a[i,j]);
 readln(f);
 end;
 close(f);
 end;
 procedure flip(var a:mat);
 var i,j,t:byte;
     s2,s1,v,v1:longint;
 begin
 for i:=1 to n do
 begin
 s2:=0;
 s1:=0;
 for j:=1 to m do
 begin
 s2:=s2+a[i,j];
 s1:=s1-a[i,j];
 end;
 if s1>s2 then
 for j:=1 to m do
 a[i,j]:=0-a[i,j];
 end;
 for j:=1 to m do
 begin
 s2:=0;
 s1:=0;
 for i:=1 to n do
 begin
 s2:=s2+a[i,j];
 s1:=s1-a[i,j];
 end;
 if s1>s2 then
 begin
 v:=0;
 v1:=0;
 for i:= 1 to n do
 for t:= 1 to m do
 v:=v+a[i,j];
 for i:=1 to n do
 a[i,j]:=0-a[i,j];
 for i:= 1 to n do
 for t:= 1 to m do
 v1:=v1+a[i,j];
 if v1<v then
 for i:=1 to n do
 a[i,j]:=0-a[i,j];
 end;
 end;
 end;
 procedure afisare;
 var f:text;
 begin
 assign(f,'flip.out');
 rewrite(f);
 write(f,s);
 close(f);
 end;
 begin
 citire;
 flip(a);
 for i:= 1 to n do
 for j:= 1 to m do
 s:=s+a[i,j];
 afisare;
 end.