Cod sursa(job #3303928)

Utilizator lucaje123Vartolomei Luca lucaje123 Data 19 iulie 2025 10:57:55
Problema Elimin Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
#include <algorithm>
#include <vector>
#include <climits>
using namespace std;

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

const int NMAX=7294;

int n, m, r, c, mat[NMAX+2][NMAX+2];

int main(){
    cin>>n>>m>>r>>c;
    if(n<=m){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cin>>mat[i][j];
            }
        }
    }
    else{
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cin>>mat[j][i];
            }
        }
        swap(n, m);
        swap(r, c);
    }
    int Max=INT_MIN;
    for(int mask=1;mask<(1<<n);mask++){
        vector<int> s(m+1);
        int bits=0;
        for(int bit=0;bit<n;bit++){
            if((mask&(1<<bit))>0){
                bits++;continue;
            }
            for(int j=1;j<=m;j++){
                s[j]+=mat[bit+1][j];
            }
        }
        if(bits==r){
            sort(s.begin(), s.end());
            int sum=0;
            for(int j=c+1;j<=m;j++){
                sum+=s[j];
            }
            Max=max(sum, Max);
        }
    }
    cout<<Max;
}