Cod sursa(job #2495786)

Utilizator gohome309Ianus Vatamanita gohome309 Data 19 noiembrie 2019 20:20:24
Problema Jocul Flip Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.55 kb
Program AB;

var f,g:text;
    st:array[1..25] of integer;
    a:array[1..100,1..100] of integer;
    k,n,p,num,m,i,j,sumM,sum:integer;



procedure init;

begin
num:=n+m;
for k:=1 to 25 do st[k]:=0;
end;



function valid(p:integer):boolean;

begin
valid:=true;
end;



procedure tipar(p:integer);
var o:integer;

begin
  {
for k:=1 to p do write(g,st[k],' ');
writeln(g);    }
o:=0;

for i:=1 to n do
    begin
    o:=o+1;
    if st[o]=2 then
        for j:=1 to m do a[i,j]:=a[i,j]*(-1)
        else continue;
    end;

for j:=1 to m do
    begin
    o:=o+1;
    if st[o]=2 then
        for i:=1 to n do a[i,j]:=a[i,j]*(-1)
        else continue;
    end;

for i:=1 to n do
        for j:=1 to m do sum:=sum+a[i,j];

if sum>sumM then sumM:=sum;

sum:=0;

end;



procedure back(p:integer);

begin
p:=1;
st[p]:=0;

while p>0 do
        begin
        if st[p]<2 then
                begin
                st[p]:=st[p]+1;
                if valid(p) then
                        if p=num then tipar(p)
                        else
                        begin
                        p:=p+1;
                        st[p]:=0;
                        end;
                end
                else p:=p-1;
        end;
end;

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,a[i,j]);
        readln(f);
        end;
sum:=0;

init;

back(1);

writeln(g,sumM);

close(f);
close(g);
end.