Pagini recente » Cod sursa (job #1713630) | Cod sursa (job #313950) | Cod sursa (job #2826140) | Cod sursa (job #2275644) | Cod sursa (job #1065950)
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[16][7300], st[20], v[7300];
int main()
{
FILE *fin, *fout;
fin=fopen("elimin.in", "r");
fout=fopen("elimin.out", "w");
int n, m, c, r, i, j, k, s, maxim=0, x, nr, S=0, aux;
fscanf(fin, "%d %d %d %d", &n, &m, &r, &c);
if(m<n)
{
aux=c;
c=r;
r=aux;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
{
fscanf(fin, "%d", &a[j][i]);
}
aux=m;
m=n;
n=aux;
}
else{
for(i=0; i<n; i++)
for(j=0; j<m; j++)
{
fscanf(fin, "%d", &a[i][j]);
}
}
for(i=0; i<(1<<n); i++)
{
x=i;
s=0;
nr=0;
int ok=1;
for(j=0; j<n; j++)
{
if(((1<<j)&x)==0)
{st[j]=0;
nr++;
}
else
st[j]=1;
if(nr>r || nr+n-j<r)
ok=0;
}
if(nr==r)
{
for(j=0; j<m; j++)
v[j]=0;
for(j=0; j<m; j++)
{
for(k=0; k<n; k++)
if(st[k]==1)
v[j]+=a[k][j];
}
sort(v, v+m);
for(j=c; j<m; j++)
{
s+=v[j];
}
if(s>maxim)
maxim=s;
}
}
fprintf(fout, "%d", maxim);
}