Cod sursa(job #2582268)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 16 martie 2020 15:52:59
Problema Elimin Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#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;
}