Mai intai trebuie sa te autentifici.

Cod sursa(job #2015399)

Utilizator shantih1Alex S Hill shantih1 Data 26 august 2017 00:04:29
Problema Elimin Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;
ifstream fin("elimin.in");
ofstream fout("elimin.out");

long long i, j, n, m, r, c, k, rez, sum, ss[7300];
int x[7300], v[7300][7300];

long long suma() {
    
    long long mins = 0;
    for (int i = 1; i <= k; i++)
    {
        v[x[i]][0] = 1;
        for (j = 1; j <= m; j++)
            mins += v[x[i]][j];
    }
    
    long long s = 0;
    for (j = 1; j <= m; j++)
    {
        s = 0;
        for (i = 1; i <= n; i++)
            if (v[i][0] == 0)
                s += v[i][j];
        
        ss[j] = s;
    }
    
    sort(ss+1, ss+m+1);
    
    for (i = 1; i <= c; i++)
        mins += ss[i];
    
    for (i = 1; i <= n; i++)
        v[i][0] = 0;
    
    return sum - mins;
}

void back(int p) {
    
    long long c;
    for (int i = x[p-1] + 1; i <= n; i++)
    {
        x[p] = i;
        if (p == k)
        {
            c = suma();
            if (c > rez)    rez = c;
        }
        else back(p + 1);
    }
        
}

int main () {
    
    fin >> n >> m >> r >> c;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= m; j++)
        {
            fin >> v[i][j];
            sum += v[i][j];
        }
    
    k = r;
    back(1);
    
    fout << rez << "\n";
    return 0;
}