Pagini recente » Cod sursa (job #3125215) | Cod sursa (job #1402541) | Cod sursa (job #3251806) | Cod sursa (job #2434751) | Cod sursa (job #1940802)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("elimin.in");
ofstream fout("elimin.out");
int a[7500][30],r,c,st[7500],sol[7500],col[7500],smax,n,m;
void Citire()
{
int i,j;
fin>>n>>m>>r>>c;
if(n<=m)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fin>>a[j][i];
swap(n,m);
swap(c,r);
}
else
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fin>>a[i][j];
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
col[i]+=a[i][j];
}
void Sum()
{
int i,j,s=0;
for(i=1;i<=n;i++)
{
sol[i]=col[i];
for(j=1;j<=c;j++)
sol[i]-=a[i][st[j]];
}
sort(sol+1,sol+n+1);
for(i=r+1;i<=n;i++)
s+=sol[i];
smax=max(smax,s);
}
void Back(int top)
{
int i;
if(top==c+1)
Sum();
else
{
for(i=st[top-1]+1;i<=m;i++)
{
st[top]=i;
Back(top+1);
}
}
}
int main()
{
Citire();
Back(1);
fout<<smax<<"\n";
return 0;
}