Pagini recente » Cod sursa (job #1957940) | Cod sursa (job #2990178) | Cod sursa (job #1678052) | Cod sursa (job #207926) | Cod sursa (job #6979)
Cod sursa(job #6979)
program elimin;
var a:array[1..100,1..100] of integer;
f,g:text;
li,co:array[1..500] of 0..1;
m,n,r,c,i,j,n1,n2,t,l1,c1:integer;
s,smax,s1:longint;
begin
assign(f,'elimin.in');reset(f);
assign(g,'elimin.out');rewrite(g);
readln(f,m,n,r,c);
s:=0;smax:=0;
for i:=1 to m do
for j:=1 to n do
begin read(f,a[i,j]);s:=s+a[i,j]; end;
for i:=1 to m do li[i]:=0 ;
repeat
i:=m;
t:=1;
while t=1 do begin t:=(li[i]+t) div 2;
li[i]:=(li[i]+1) mod 2;
i:=i-1;
end;
n1:=0;
for i:=1 to m do
if li[i]=1 then n1:=n1+1;
if n1 =r then begin
for j:=1 to n do co[j]:=0 ;
repeat
j:=n;
t:=1;
while t=1 do begin t:=(co[j]+t) div 2;
co[j]:=(co[j]+1) mod 2;
j:=j-1;
end;
n2:=0;
for j:=1 to n do
if co[j]=1 then n2:=n2+1;
if n2=c then begin
s1:=s;
for i:=1 to m do
if li[i]=1 then
for j:= 1 to n do
if co[j]=1 then
begin
for l1:=1 to n do
s1:=s1-a[l1,j];
for c1:=1 to n do
s1:=s1-a[i,c1];
s1:=s1+a[i,j];
end;
if s1>smax then smax:=s1;
end;
until n2=n;
end;
until n1 =m;
write(g,smax);
close(f);close(g);
end.