Cod sursa(job #2515893)

Utilizator miruna1224Floroiu Miruna miruna1224 Data 29 decembrie 2019 18:35:11
Problema Elimin Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

const int N = 1010;
int  m, n, r, c;
long long rez;
int  sol[N],  VectorS[N], v[N][N];



void Suma( )
{
    int i, j;
    int sc = 0;
    for ( i = 1; i <= m; i++ )
        VectorS[i] = 0;
    for ( i = 1; i <= n - r; i++)
        for ( j = 1; j <= m; j++ )
            VectorS[j] += v[sol[i]][j];
    sort( VectorS + 1, VectorS + m + 1 );
    for ( i = m ;i > c; i-- )
        sc += VectorS[i];
    if ( sc > rez )
        rez = sc;
}

void bkt (  int k )
{
    int i;
    for ( i = sol[k - 1] + 1 ; i <= n; i++ )
    {
        sol[k] = i;
        if( k == n - r )
            Suma();
        else bkt( k + 1 );
    }
}

int main()
{
    int i, j;

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

    in >> n >> m >> r >> c;
    for ( i = 1; i <= n; i++)
    {
      for ( j = 1; j <= m; j++ ){
                if( n < m )
                    in >> v[i][j];
                else in >> v[j][i];
        }
    }

    if (n > m)
    {
        n = n + m;
        m = n - m;
        n = n - m;
        r = r + c;
        c = r - c;
        r = r - c;
    }

    bkt ( 1 );

    out << rez;

    in.close();
    out.close();

    return 0;
}