Cod sursa(job #187420)

Utilizator SacalulEmil Culic Sacalul Data 4 mai 2008 02:48:31
Problema Jocul Flip Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.37 kb
program pb002;
type matrice=array [1..16,1..16] of longint;
var f,g:text;
    x:array [1..2] of integer;
    n,m:1..16;
    max,y,s,i,j,neg,poz:longint;
    h:boolean;
    a,b:matrice;

procedure init(k:integer);
begin
x[k]:=0;
end;

function exista(k:integer):boolean;
begin
exista:=true;
if k=1 then if x[k]>=n then exista:=false;
if k=2 then if x[k]>=m then exista:=false;
end;

function sol(k:integer):boolean;
begin
sol:=(k=2);
end;

procedure maxim;
begin
for i:=1 to n do
for j:=1 to m do b[i,j]:=a[i,j];
for i:=1 to m do b[x[1],i]:=-a[x[1],i];
for j:=1 to n do b[j,x[2]]:=-a[j,x[2]];
s:=0;
for i:=1 to n do
for j:=1 to m do s:=s+b[i,j];
if s>max then max:=s;
end;

procedure bkt;
var k:1..2;
begin
max:=0;
k:=1; init(k);
while k>0 do
        if exista(k) then begin
                          x[k]:=x[k]+1;
                          if sol(k) then maxim
                                    else begin
                                         k:=k+1;
                                         init(k);
                                         end
                          end
                     else k:=k-1;
end;


begin
assign(f,'flip.in');
assign(g,'flip.out');
reset(f);
rewrite(g);
readln(f,n,m);
for i:=1 to n do begin
   for j:=1 to m do read(f,a[i,j]);
   readln(f);
   end;
bkt;
write(g,max);
close(g);
close(f);
end.