Cod sursa(job #2628718)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 17 iunie 2020 11:01:13
Problema Elimin Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 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][8005];
int sp[8005];

int b(int n) {
  int cnt = 0;
  while(n) {
    n &= n - 1;
    cnt++;
  }
  return cnt;
}

int main() {
  cin >> n >> m >> r >> c;
  for(int i = 0; i < n; i++) {
    for(int j = 0; j < m; j++) {
      if(n <= m)
        cin >> v[i][j];
      else
        cin >> v[j][i];
    }
  }
  if(n > m)
    swap(n, m), swap(r, c);
  for(int i = 0; i < (1 << n); i++) {
    if(b(i) == r) {
      for(int j = 0; j < m; j++)
        sp[j] = 0;
      for(int k = 0; k < n; k++) {
        if((i & (1 << k)) == 0) {
          for(int j = 0; j < m; j++)
            sp[j] += v[k][j];
        }
      }
      sort(sp, sp + m);
      s = 0;
      for(int j = c; j < m; j++)
        s += sp[j];
      smax = max(s, smax);
    }
  }
  cout << smax;
  return 0;
}