Cod sursa(job #1642139)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 9 martie 2016 12:52:04
Problema Elimin Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("elimin.in");
ofstream g("elimin.out");

long a[500][500], n, m, i, j, r, c;
long sl[500], sc[500];
bool fl[500];
long gl[500], max1 = -2100000000;

void bkt(int k)
{
    long i, j, stot = 0;
    if (k == r)
    {
        for (i = 0; i < m; i++)
            sc[i] = 0;
        for (i = 0; i < n; i++)
            if (fl[i] == 0)
                for (j = 0; j < m; j++)
                    sc[j] += a[i][j];
        sort(sc+1, sc+m+1);
        for (i = m; i >= c+1; i--)
            stot += sc[i];
        if (stot > max1)
            max1 = stot;
    }
    else
    {
        if (k == 0)
            i = 0;
        else
            i = gl[i-1]+1;
        for (; i < n; i++)
        {
            fl[i] = 1;
            gl[k] = i;
            bkt(k+1);
            fl[i] = 0;
        }
    }
}

int main()
{
    f >> n >> m >> r >> c;
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            f >> a[i][j];

    bkt(0);
    g << max1;
    return 0;
}