Pagini recente » Cod sursa (job #759423) | Cod sursa (job #239108) | Cod sursa (job #1564409) | Cod sursa (job #983299) | Cod sursa (job #2710276)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("elimin.in");
ofstream fout("elimin.out");
long long s[8000];
int mat[7295][16];
int main()
{
int n, m, r, c;
fin >> n >> m >> r >> c;
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= m; ++j)
if(n >= m)
fin >> mat[i][j];
else fin >> mat[j][i];
int minn = min(n, m);
if(minn != m)
{
swap(n, m);
swap(r, c);
}
long long maxx = 0;
for(int msk = 0; msk < (1 << m); ++msk)
if(__builtin_popcount(msk) == c)
{
for(int i = 1; i <= n; ++i)
s[i] = 0;
long long sum = 0;
for(int j = 1; j <= m; ++j){
if((1 << (j - 1)) & msk)
continue;
for(int i = 1; i <= n; ++i)
s[i] += mat[i][j], sum += mat[i][j];
}
sort(s + 1, s + n + 1);
for(int i = 1; i <= r; ++i)
sum -= s[i];
maxx = max(maxx, sum);
}
fout << maxx << '\n';
return 0;
}