Cod sursa(job #3365285)

Utilizator TudorMitMituca Tudor TudorMit Data 17 septembrie 2026 20:24:37
Problema Elimin Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
using namespace std;

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

int a[20][10000];
int v[10000];

int main()
{
    int m,n,r,c,rez=0,cnt,s;
    cin>>m>>n>>r>>c;
    for(int i=1;i<=m;i++)
        for(int j=1;j<=n;j++)
            cin>>a[i][j];
    if(m<n){
        swap(n,m);
        swap(c,r);
        for(int i=1;i<=n;i++)
            for(int j=i+1;j<=m;j++)
                swap(a[i][j],a[j][i]);
    }
    for(int i=0;i<(1<<n);i++){
        cnt=0;
        for(int j=0;j<n;j++)
            if(i&(1<<j))
                cnt++;
        if(cnt!=c)
            continue;
        for(int j=1;j<=m;j++){
            v[j]=0;
            for(int y=1;y<=n;y++)
                if((i&(1<<(y-1)))==0)
                    v[j]+=a[j][y];
        }
        for(int j=1;j<=m;j++)
            for(int y=j+1;y<=m;y++)
                if(v[j]>v[y])
                    swap(v[j],v[y]);
        s=0;
        for(int j=r+1;j<=m;j++)
            s+=v[j];
        if(s>rez)
            rez=s;
    }
    cout<<rez;
    return 0;
}