Pagini recente » Cod sursa (job #2899748) | Cod sursa (job #1777354) | Cod sursa (job #1729386) | Cod sursa (job #1732018) | Cod sursa (job #149976)
Cod sursa(job #149976)
#include <stdio.h>
#include <algorithm>
using namespace std;
int v[7300][16];
int sl[7300];
int n,m,R=0,C=0;
int asdf=0;
bool cmp(int x, int y)
{
return x>y;
}
int sumlin(int c)
{
int i,j,t,s=0;
for (i=0; i<m; ++i)
{
sl[i]=0; j=0; t=c;
for (;j<n; ++j,t=t>>1)
sl[i]+=v[i][j]*(t & 1);
}
sort(sl,sl+n,cmp); s=0;
for (i=0; i<m-R; ++i)
s+=sl[i];
return s;
}
void elimc()
{
int t,k=1<<n,l,i;
for (i=0; i<k; ++i)
{
t=i; l=0;
while (t)
{
if (t&1)
++l;
t=t>>1;
}
if (l==n-C)
{
t=sumlin(i);
if (t>asdf)
asdf=t;
}
}
}
int main()
{
FILE *in = fopen("elimin.in","r");
FILE *out = fopen("elimin.out","w");
int i,j;
fscanf(in,"%d%d%d%d",&m,&n,&R,&C);
if (n>15)
{
j=n; n=m; m=j;
j=R; R=C; C=j;
for (i=0; i<n; ++i)
for (j=0; j<m; ++j)
fscanf(in,"%d",&v[j][i]);
}
else
{
for (i=0; i<m; ++i)
for (j=0; j<n; ++j)
fscanf(in,"%d",&v[i][j]);
}
elimc();
fprintf(out,"%d\n",asdf);
fclose(in);
fclose(out);
return 0;
}