Cod sursa(job #3362610)

Utilizator Maryy_1369Gociu Maria Anastasia Maryy_1369 Data 10 august 2026 22:22:37
Problema Elimin Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
#include<queue>
#include<algorithm>
#include<cmath>
#include<vector>
#include<map>
#include<stack>
#include<climits>
#include<deque>
#include<unordered_map>
#include<unordered_set>
using namespace std;

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

int main()
{
  int n,m,l,c;
  cin>>n>>m>>l>>c;
  vector<vector<int>>v(n+1,vector<int>(m+1));
  for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
        cin>>v[i][j];
    }
  }
  if(n<m){
    vector<vector<int>>w(m+1,vector<int>(n+1));
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++)w[j][i]=v[i][j];
    }
    swap(n,m);
    swap(l,c);
    v=w;
  }

  long long ans=0;
  for(int mk=0;mk<(1<<m);mk++){
    if(__builtin_popcount(mk)!=c)continue;
    long long s[1000];
    for(int i=1;i<=n;i++){
        s[i]=0;
        for(int j=1;j<=m;j++){
            if(!(mk&(1<<(j-1))))s[i]+=v[i][j];
        }
    }
    sort(s+1,s+n+1);
    long long cr=0;
    for(int i=l+1;i<=n;i++)cr+=s[i];
    ans=max(ans,cr);
  }
  cout<<ans<<"\n";
  return 0;
}