Pagini recente » Borderou de evaluare (job #3364973) | Borderou de evaluare (job #3364974) | Borderou de evaluare (job #3364859) | Borderou de evaluare (job #3364493) | Cod sursa (job #3365286)
#include <fstream>
using namespace std;
ifstream cin("elimin.in");
ofstream cout("elimin.out");
int a[10000][10000];
int v[10000];
int main()
{
int m,n,r,c,rez=0,cnt,s;
cin>>m>>n>>r>>c;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
if(m<n){
swap(n,m);
swap(c,r);
for(int i=1;i<=n;i++)
for(int j=i+1;j<=m;j++)
swap(a[i][j],a[j][i]);
}
for(int i=0;i<(1<<n);i++){
cnt=0;
for(int j=0;j<n;j++)
if(i&(1<<j))
cnt++;
if(cnt!=c)
continue;
for(int j=1;j<=m;j++){
v[j]=0;
for(int y=1;y<=n;y++)
if((i&(1<<(y-1)))==0)
v[j]+=a[j][y];
}
for(int j=1;j<=m;j++)
for(int y=j+1;y<=m;y++)
if(v[j]>v[y])
swap(v[j],v[y]);
s=0;
for(int j=r+1;j<=m;j++)
s+=v[j];
if(s>rez)
rez=s;
}
cout<<rez;
return 0;
}