Pagini recente » Cod sursa (job #533828) | Cod sursa (job #1215138) | Cod sursa (job #2082457) | Cod sursa (job #1583375) | Cod sursa (job #131420)
Cod sursa(job #131420)
#include <stdio.h>
#include <algorithm>
using namespace std;
long n,m,i,j,a[1000][16],r,c,q,nr,aux;
long s[1000],st,maxim;
int main(){
freopen("elimin.in","r",stdin);
freopen("elimin.out","w",stdout);
scanf("%ld %ld %ld %ld",&n,&m,&r,&c);
if (n>m){
for (i=1;i<=n;i++){
for (j=1;j<=m;j++){
scanf("%ld",&a[i][j]);
}
}
}
else{
aux=n;n=m;m=aux;
aux=r;r=c;c=aux;
for (j=1;j<=m;j++){
for (i=1;i<=n;i++){
scanf("%ld",&a[n-i+1][j]);
}
}
}
q=0;
while (q<(1<<m)){
nr=0;
for (i=0;i<m;i++){
if (q&(1<<i))nr++;
}
if (nr==c){
for (i=1;i<=n;i++)s[i]=0;
st=0;
for (j=1;j<=m;j++)
if (!(q&(1<<(j-1))))
for (i=1;i<=n;i++){
s[i]+=a[i][j];
st+=a[i][j];
}
sort(s,s+n+1);
for (i=1;i<=r;i++)st-=s[i];
if (st>maxim)maxim=st;
}
q++;
}
printf("%ld\n",maxim);
return 0;
}