Pagini recente » Cod sursa (job #1515308) | Cod sursa (job #2387030) | Cod sursa (job #1112521) | Cod sursa (job #448923) | Cod sursa (job #30072)
Cod sursa(job #30072)
program Fliper;
var
mat1, mat2: array[1..16,1..16] of longint;
n, m, k: byte;
v: array[0..17] of shortint;
max: longint;
van: boolean;
f: text;
procedure BeOlvas;
var
f: text;
i, j: byte;
begin
Assign(f, 'flip.in');
Reset(f);
Readln(f, n, m);
for i := 1 to n do
for j := 1 to m do
Read(f, mat1[i,j]);
Close(f);
end;
procedure Flip(y: byte);
var i: byte;
begin
for i := 1 to m do
mat2[y,i] := mat2[y,i] * (-1);
end;
procedure Kovetkezo(k: integer; var van: boolean);
begin
if (v[k] < 1) and (k < n)then
begin
Inc(v[k]);
van := true
end
else van := false;
end;
procedure MegFigyel;
var
i, j: byte;
ertek, ertek2: longint;
begin
ertek := 0;
ertek2 := 0;
for i := 1 to n do
if v[i] = 1 then Flip(i);
for i := 1 to m do
begin
for j := 1 to n do
ertek2 := ertek2 + mat2[j,i];
ertek := ertek + abs(ertek2);
ertek2 := 0;
end;
if ertek > max then max := ertek;
end;
Begin
BeOlvas;
max := 0;
k := 1; v[k] := -1;
while k > 0 do
begin
mat2 := mat1;
Kovetkezo(k, van);
if van then
begin
if van then Megfigyel;
Inc(k);
v[k] := -1;
end
else Dec(k);
end;
Assign(f, 'flip.out');
ReWrite(f);
Writeln(f, max);
Close(f);
end.