Cod sursa(job #2740251)

Utilizator maria.rotaruMaria Rotaru maria.rotaru Data 12 aprilie 2021 11:29:11
Problema Elimin Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
#include <algorithm>
#include <cmath>
#define NMAX 521
#define MMAX 15

using namespace std;

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

int n,m,l,c,a[NMAX+1][MMAX+1], vc[NMAX+1], rez[NMAX+1];

int main()
{
    cin>>m>>n>>l>>c;
    int suma=0, smax=-1;
    for (int i=1; i<=m; i++)
        for (int j=1; j<=n; j++)
            cin>>a[i][j], suma+=a[i][j];
    if (min(n,m)!=n)
        swap(n,m), swap(l,c);
    for (int i=1; i<=(1<<n)-1; i++)
    {
        int s=0;
        for(int j=1; j<=m; j++)
            vc[j]=0;
        for (int j=1; j<=m; j++)
            rez[j]=0;
        for (int j=0; j<m && s<c; j++)
            if ( ((i>>j)&1) )
                vc[j+1]=1,s++;
        for (int k=1; k<=m; k++)
            for (int j=1; j<=n; j++)
                if (!vc[j])
                    rez[k]+=a[k][j];
        sort(rez+1, rez+m+1);
        for (int j=1; j<=l; j++)
            rez[j]=0;
        int sm=0;
        for (int j=1; j<=m; j++)
            if (rez[j])
                sm+= rez[j];
        if (sm>smax)
            smax=sm;

    }

    cout<<smax;
        return 0;

}