Pagini recente » Cod sursa (job #2985040) | Cod sursa (job #2945803) | Cod sursa (job #551728) | Cod sursa (job #724890) | Cod sursa (job #2740259)
#include <fstream>
#include <algorithm>
#include <cmath>
#define NMAX 7294
#define MMAX 15
using namespace std;
ifstream cin("elimin.in");
ofstream cout("elimin.out");
int n,m,l,c,a[NMAX+1][MMAX+1], vc[MMAX+1], rez[NMAX+1];
int main()
{
cin>>m>>n>>l>>c;
int smax=-1;
if (min(n,m)!=n)
{
for (int i=1; i<=m; i++)
for (int j=1; j<=n; j++)
cin>>a[j][i];
swap(n,m), swap(l,c);
}
else
{
for (int i=1; i<=m; i++)
for (int j=1; j<=n; j++)
cin>>a[i][j];
}
for (int i=1; i<=(1<<n)-1; i++)
{
int s=0;
for(int j=1; j<=m; j++)
vc[j]=0;
for (int j=1; j<=m; j++)
rez[j]=0;
for (int j=0; j<n; j++)
if ( ((i>>j)&1) )
vc[j+1]=1,s++;
if (s==c)
{
for (int k=1; k<=m; k++)
for (int j=1; j<=n; j++)
if (!vc[j])
rez[k]+=a[k][j];
sort(rez+1, rez+m+1);
int sm=0;
for (int j=l+1; j<=m; j++)
sm+= rez[j];
if (sm>smax)
smax=sm;
}
}
cout<<smax;
return 0;
}