Pagini recente » Cod sursa (job #843049) | Cod sursa (job #2852303) | Cod sursa (job #1045986) | Cod sursa (job #2186327) | Cod sursa (job #1845412)
#include <bits/stdc++.h>
using namespace std;
int c[7500],r[7500];
int a[7500][20],sum;
int n,m,R,C,rs[7500],sumax=0;
ifstream fin("elimin.in");
ofstream fout("elimin.out");
void back(int l,int u)
{
int i,j;
if(l==C+1)
{
sum=0;
for(i=1;i<=n;i++)
{
r[i]=c[i];
for(j=1;j<l;j++)
{
r[i]-=a[i][rs[j]];
}
}
sort(r+1,r+1+n);
for(i=R+1;i<=n;i++) sum+=r[i];
sumax=max(sumax,sum);
}
else
for(i=u+1;i<=m;i++)
{
rs[l]=i;
back(l+1,i);
}
}
int main()
{
fin >> n >> m >> R >> C;
if(m<=n)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
fin >> a[i][j];
sum+=a[i][j];
}
}
else
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
fin >> a[j][i];
sum+=a[j][i];
}
}
swap(n,m);
swap(R,C);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++) c[i]+=a[i][j];
back(1,0);
fout << sumax;
return 0;
}