Cod sursa(job #2787265)

Utilizator Iulia25Hosu Iulia Iulia25 Data 22 octombrie 2021 20:39:29
Problema Elimin Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin("elimin.in");
ofstream cout("elimin.out");

int a[90][7300], sum[7300];
bool ok[90];

int main()  {
    int n, m, r, c, ans = 0;
    cin >> n >> m >> r >> c;
    if (n <= m)  {
        for (int i = 1; i <= n; ++i)    {
            for (int j = 1; j <= m; ++j)    {
                cin >> a[i][j];
            }
        }
    } else  {
        for (int j = m; j; --j)    {
            for (int i = 1; i <= n; ++i)    {
                cin >> a[i][j];
            }
        }
        swap(n, m);
        swap(r, c);
    }
    for (int stare = 0; stare < (1 << n); ++stare)  {
        int cnt = 0;
        for (int bit = 0; bit < n; ++bit)  {
            if (stare & (1 << bit))    {
                ++cnt;
                ok[bit + 1] = false;
            } else ok[bit + 1] = true;
        }
        if (cnt != r)
            continue;
        for (int i = 1; i <= m; ++i)    {
            sum[i] = 0;
            for (int j = 1; j <= n; ++j)    {
                if (ok[j])
                    sum[i] += a[j][i];
            }
        }
        sort (sum + 1, sum + m + 1);
        int r = 0;
        for (int i = m; i > c; --i)    {
            r += sum[i];
        }
        ans = max(ans, r);
    }
    cout << ans;
    return 0;
}