Pagini recente » Cod sursa (job #1943631) | Cod sursa (job #3259170) | Cod sursa (job #2109219) | Cod sursa (job #1358157) | Cod sursa (job #2675784)
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "elimin.in" );
ofstream fout( "elimin.out" );
const int NMAX = 7300;
vector <int> v[NMAX + 1];
long long s[NMAX + 1];
static inline long long max(long long a, long long b){
return a < b ? b : a;
}
int main() {
long long n, m, r, c, i, j, a, col;
long long sum, maxx;
fin >> n >> m >> r >> c;
for( i = 1; i <= n; ++i ){
v[i].push_back(0);
for( j = 1; j <= m; ++j ){
fin >> a;
v[i].push_back(a);
}
}
maxx = 0;
for( i = 0; i < (1 << n); ++i ){
if( __builtin_popcount(i) == r ){
sum = 0;
for( j = 0; j < n; ++j )
if( (i & (1 << j)) == 0 ){
for( col = 1; col <= m; ++col )
s[col] += v[j + 1][col];
}
sort(s + 1, s + 1 + m);
for( j = 1; j <= m; ++j ){
sum += (j > c ? s[j] : 0);
s[j] = 0;
}
maxx = max(maxx, sum);
}
}
fout << maxx;
return 0;
}