Pagini recente » Cod sursa (job #1035111) | Cod sursa (job #2637489) | Cod sursa (job #395106) | Cod sursa (job #2314864) | Cod sursa (job #1939030)
#include <cstdio>
#include <algorithm>
using namespace std;
int a[20][8000],fv[20],col[8000],n,m,l,c,wurk[8000],mx=-1;
void bkt(int val,int el)
{
int i,j;
fv[el]=1;
if(val==l)
{
int s=0;
for(i=1;i<=m;i++)
{
wurk[i]=col[i];
for(j=1;j<=n;j++)
if(fv[j])
wurk[i]-=a[j][i];
}
sort(&wurk[1],&wurk[m+1]);
for(i=c+1;i<=m;i++)
s+=wurk[i];
if(s>mx)
mx=s;
}
else
for(i=1;i<=n;i++)
if(fv[i]==0)
bkt(val+1,i);
fv[el]=0;
}
int main()
{
freopen("elimin.in","r",stdin);
freopen("elimin.out","w",stdout);
int i,j;
scanf("%d%d%d%d",&n,&m,&l,&c);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(n<m)
scanf("%d",&a[i][j]);
else scanf("%d",&a[j][i]);
if(n>=m)
{
i=n;
n=m;
m=i;
i=l;
l=c;
c=l;
}
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
col[i]+=a[j][i];
bkt(0,0);
printf("%d",mx);
return 0;
}