Pagini recente » Cod sursa (job #3199705) | Cod sursa (job #2572464) | Cod sursa (job #1801124) | Cod sursa (job #2376670) | Cod sursa (job #131417)
Cod sursa(job #131417)
#include <stdio.h>
#include <algorithm>
using namespace std;
long n,m,i,j,a[16][1000],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;
}