Mai intai trebuie sa te autentifici.
Cod sursa(job #2312789)
Utilizator | Data | 5 ianuarie 2019 15:32:57 | |
---|---|---|---|
Problema | Elimin | Scor | 70 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.91 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin ("elimin.in");
ofstream cout ("elimin.out");
int n, m, r, c, s, smax;
int v[20][7300];
int sp[7300];
int b(int n) {
int cnt = 0;
while(n) {
n &= n - 1;
cnt++;
}
return cnt;
}
int main() {
cin >> n >> m >> r >> c;
if(n > m)
swap(n, m), swap(r, c);
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++)
cin >> v[i][j];
}
for(int i = 0; i < (1 << n); i++) {
if(b(i) == r) {
for(int j = 1; j <= m; j++)
sp[j] = 0;
for(int k = 1; k <= n; k++) {
if(!(i & (1 << (k - 1)))) {
for(int j = 1; j <= m; j++)
sp[j] += v[k][j];
}
}
sort(sp + 1, sp + m + 1);
s = 0;
for(int j = c + 1; j <= m; j++)
s += sp[j];
smax = max(s, smax);
}
}
cout << smax;
return 0;
}