Cod sursa(job #791214)
Utilizator | Data | 23 septembrie 2012 13:34:24 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 30 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 3.2 kb |
program flip;
VAR
v:array[1..16,1..16] of longint;
i,j,n,m,k:integer;
f,g:text;
s,s1,s2,s3,s4,dif1,dif2:longint;
Begin
assign(f,'flip.in'); Reset(f);
assign(g,'flip.out'); Rewrite(g);
readln(f,n,m);
for i:=1 to n do begin
for j:=1 to m do
read(f,v[i,j]);
read(f);
end;
for i:=1 to n do
for j:=1 to m do begin
dif1:=0; dif2:=0;
s1:=0; s2:=0;
s3:=0; s4:=0;
for k:=1 to n do begin
s1:=s1+v[k,j];
s2:=s2-v[k,j];
end;
for k:=1 to m do begin
s3:=s3+v[i,k];
s4:=s4-v[i,k];
end;
if (s2>s1) and (s4>s3) then begin
s4:=s4-v[i,j];
dif1:=s2+s4;
s4:=s4+v[i,j];
s2:=s2-v[i,j];
dif2:=s2+s4;
if dif1>dif2 then begin
for k:=1 to n do
v[k,j]:=v[k,j]*(-1);
for k:=1 to m do
v[i,k]:=v[i,k]*(-1);
end else begin
for k:=1 to m do
v[i,k]:=v[i,k]*(-1);
for k:=1 to n do
v[k,j]:=v[k,j]*(-1);
end;
end else
if s2>s1 then begin
dif1:=s3+s1;
s3:=s3-v[i,j];
dif2:=s3+s2;
if dif2>dif1 then begin
for k:=1 to n do
v[k,j]:=v[k,j]*(-1);
end;
end
else if s4>s3 then begin
dif1:=s1+s3;
s1:=s1-v[i,j];
dif2:=s4+s1;
if dif2>dif1 then
for k:=1 to m do
v[i,k]:=v[i,k]*(-1);
end;
end;
s:=0;
for i:=1 to n do
for j:=1 to m do
s:=s+v[i,j];
writeln(g,s);
close(g);
end.
end.