Pagini recente » Cod sursa (job #3260373) | Cod sursa (job #9886) | Cod sursa (job #424801) | Cod sursa (job #134203) | Cod sursa (job #1081507)
#include <fstream>
#include <algorithm>
using namespace std;
int v[20],a[20][8000],b[8000][20], n, m, l ,c;
int sol;
void Solve()
{
int i,sum = 0,j ,k = 1;
int s[8000];
memset(s,0,sizeof(s));
for(i = 1;i <= n; ++i)
if(k <= l && i == v[k])
++k;
else
{
for(j = 1;j <= m; ++j)
s[j] += a[i][j];
}
sort(s+1,s+m+1);
for(i = c+1; i<= m; ++i)
sum += s[i];
sol = max(sol,sum);
}
void Back(int k)
{
if(k==l+1)
{
Solve();
return ;
}
for(int i=v[k-1]+1;i <= n;++i)
{
v[k] = i;
Back(k+1);
}
}
int main()
{
ifstream f("elimin.in");
f>> n >> m >> l >> c;
if(n <= m)
{
for(int i = 1;i <= n; ++i)
for(int j = 1 ;j <= m; ++j)
f>>a[i][j];
}
else
{
for(int i = 1;i <= n; ++i)
for(int j = 1 ;j <= m; ++j)
f>>b[i][j];
for(int i = 1;i <= n; ++i)
for(int j = 1;j <= m; ++j)
a[j][i] = b[i][j];
swap(n,m);
swap(l,c);
}
Back(1);
ofstream g("elimin.out");
g<<sol<<"\n";
return 0;
}