Pagini recente » Cod sursa (job #1873165) | Cod sursa (job #1982514) | Cod sursa (job #1135190) | Cod sursa (job #1076647) | Cod sursa (job #2752792)
#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;
}
unsigned short int a[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;
if(n>m)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>a[j][i];
aux=l;
l=c;
c=aux;
aux=n;
n=m;
m=aux;
}
else{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>a[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]=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;
}