Pagini recente » Cod sursa (job #2187887) | Cod sursa (job #3036435) | Cod sursa (job #2579681) | Cod sursa (job #2338345) | Cod sursa (job #2339092)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int N, a[100][1000], v[1000], i, j, n, m, c, r, ans, curr, it;
inline int zeros(int x) {
return x & (-x);
}
inline int cnt(int x) {
int i = 0;
while (x) {
x -= zeros(x);
++i;
}
return i;
}
int main()
{
ifstream fin("elimin.in");
ofstream fout("elimin.out");
fin >> n >> m >> r >> c;
if (n > m) {
swap(n, m);
swap(r, c);
for (j = 0; j < m; ++j)
for (i = 0; i < n; ++i)
fin >> a[i][j];
}
else {
for (i = 0; i < n; ++i)
for (j = 0; j < m; ++j)
fin >> a[i][j];
}
N = (1 << n);
ans = 0;
for (it = 0; it < N; ++it)
if (cnt(it) == r) {
for (i = 0; i < m; ++i)
v[i] = 0;
curr = 0;
for (i = 0; i < n; ++i)
if (!(it & (1 << i)))
for (j = 0; j < m; ++j)
v[j] += a[i][j];
sort(v, v + m);
for (i = c; i < m; ++i)
curr += v[i];
ans = max(ans, curr);
}
fout << ans;
return 0;
}