Pagini recente » Cod sursa (job #2654520) | Rating eva strecheanu (strecheanueva) | Cod sursa (job #3032103) | Cod sursa (job #226433) | Cod sursa (job #150094)
Cod sursa(job #150094)
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int cmpf(int a, int b)
{
return (a<b);
}
int b,z[600],x[600][600],i,j,k,l,a,s,rez,n,m,ln,cl;
int y[600];
void back(int p, int k)
{
if (p>m+1)
return ;
if (k==cl)
{
s=0;
for (int i=1;i<=n;i++)
{
z[i]=0;
for (int j=1;j<=m;j++)
if (!y[j])
z[i]+=x[i][j];
}
sort(z+1,z+n+1,cmpf);
for (i=ln+1;i<=n;i++)
s+=z[i];
if (s>rez)
rez=s;
}
else
{
y[p]=1;
back(p+1,k+1);
y[p]=0;
back(p+1,k);
}
}
int main()
{
freopen("elimin.in","r",stdin);
freopen("elimin.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&ln,&cl);
rez=-100000;
if (m>15||m>n)
{
a=n; n=m; m=a;
a=ln; ln=cl; cl=a;
for (j=1;j<=m;j++)
for (i=1;i<=n;i++)
scanf("%d",&x[i][j]);
}
else
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
scanf("%d",&x[i][j]);
back(1,0);
printf("%d\n",rez);
return 0;
}