Cod sursa(job #1453997)
Utilizator | Data | 25 iunie 2015 11:32:56 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 10 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 1.71 kb |
type matrice=array [1..16,1..16]of longint;
var a:matrice;
i,j,k,m,n,p,q,x,y,s,s1,s2,max:longint;
f,g:text;
b:boolean;
begin
assign(f,'flip.in');
assign(g,'flip.out');
reset(f);
rewrite(g);
read(f,n,m);
for i:=1 to n do
for j:=1 to m do
read(f,a[i,j]);
b:=true;
max:=-maxint;
while b do
begin
s1:=-maxint;
s2:=-maxint;
for i:=1 to n do
begin
for j:=1 to m do
a[i,j]:=-a[i,j];
s:=0;
for p:=1 to n do
for q:=1 to m do
s:=s+a[p,q];
if (s>s1)and(s>max) then begin
s1:=s;
x:=i;
end;
for j:=1 to m do
a[i,j]:=-a[i,j];
end;
for j:=1 to m do
begin
for i:=1 to n do
a[i,j]:=-a[i,j];
s:=0;
for p:=1 to n do
for q:=1 to m do
s:=s+a[p,q];
if (s>s2)and(s>max) then begin
s2:=s;
y:=j;
end;
for i:=1 to n do
a[i,j]:=-a[i,j];
end;
if (s1>s2)and(s1>max) then begin
max:=s1;
b:=false;
for j:=1 to m do
a[x,j]:=-a[x,j];
end
else if (s2>s1)and(s2>max) then begin
max:=s2;
b:=false;
for i:=1 to n do
a[i,y]:=-a[i,y];
end;
b:=not(b);
end;
write(g,max);
close(f);
close(g);
end.