Pagini recente » Cod sursa (job #421458) | Cod sursa (job #3144779) | Cod sursa (job #2052176) | Cod sursa (job #2482823) | Cod sursa (job #2752787)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("elimin.in");
ofstream cout("elimin.out");
bool cmp(int a,int b)
{
if(a!=b)
return (a>b);
return false;
}
int a[3001][3001],a2[101][3001];
int vsum[3001];
int vc[3001];
int main()
{
int n,m,l,c,aux,ii,nr,n2,i,j,rezfin=0,cnt;
cin>>n>>m>>l>>c;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>a[i][j];
if(n>m)
{
aux=l;
l=c;
c=aux;
aux=n;
n=m;
m=aux;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
a2[i][j]=a[j][i];
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
a[i][j]=a2[i][j];
}
for(ii=0;ii<(1<<n);ii++)
{
aux=ii;
nr=0;
cnt=0;
for(i=1;i<=n;i++){
vc[i]=0;
for(j=1;j<=m;j++)
vsum[j]=0;
}
while(aux)
{
nr++;
if(aux%2==1){
vc[nr]=1;
cnt++;
}
aux/=2;
}
n2=0;
if(cnt==l){
for(i=1;i<=n;i++)
{
if(vc[i]==0)
{
n2++;
for(j=1;j<=m;j++)
vsum[j]+=a[i][j];
}
}
sort(vsum+1,vsum+m+1,cmp);
int rez=0;
for(i=1;i<=m-c;i++)
rez+=vsum[i];
rezfin=max(rez,rezfin);
}
}
cout<<rezfin;
return 0;
}