Pagini recente » Istoria paginii utilizator/johsonsbabi | Cod sursa (job #188051) | Monitorul de evaluare | Istoria paginii utilizator/remusmp | Cod sursa (job #23218)
Cod sursa(job #23218)
Program cel;
Type matrice=array[1..16,1..16] of longint;
vector=array[1..16] of byte;
var f,g:text;
a:vector;
b:matrice;
n,m,i,j:byte;
S:longint;
procedure prelucrare(a:vector;b:matrice;k:byte;var S:longint);
var i,j:byte;
S1,S2:longint;
Begin
For i:=1 to k do
For j:=1 to m do b[a[i],j]:=b[a[i],j]*(-1);
For j:=1 to m do
Begin
S1:=0;
For i:=1 to n do Begin
S1:=S1+b[i,j];
If S1<0 then break;
end;
If S1<0 then For i:=1 to n do b[i,j]:=b[i,j]*(-1);
end;
S2:=0;
For i:=1 to n do
For j:=1 to m do
S2:=S2+b[i,j];
If S<S2 then S:=S2;
end;
procedure combinari(n,k,j:byte);
var i:byte;
Begin
If j=k then prelucrare(a,b,k,S)
else Begin
j:=j+1;
For i:=a[j-1]+1 to n-k+j do
Begin
a[j]:=i;
Combinari(n,k,j);
end;
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,b[i,j]);
Readln(f);
end;
S:=-2000000000;
For i:=0 to n do combinari(n,i,0);
Write(g,S);
Close(f);
Close(g);
end.