Pagini recente » Istoria paginii utilizator/robert.poziumschi | Cod sursa (job #1362401) | Sandbox (cutiuţa cu năsip) | Cod sursa (job #389701) | Cod sursa (job #1312213)
#include <fstream>
#include <cstring>
#include <algorithm>
#define DIM 1000
using namespace std;
ifstream fin("elimin.in");
ofstream fout("elimin.out");
int D[DIM][20],N,M,R,C,s[DIM],maxim;
bool b[30];
int main(){
fin>>N>>M>>R>>C;
if(M>N){
swap(N,M);
swap(R,C);
}
for(int i=0;i<N;i++)
for(int j=0;j<M;j++)
fin>>D[i][j];
for(int k=0;k<(1<<M);k++){
int nr=0;
memset(b,0,sizeof(b));
for(int j=0;j<M;j++)
if(k&(1<<j)){
b[j]=1;
nr++;
}
if(nr==C)
{
for(int i=0;i<N;i++){
s[i]=0;
for(int j=0;j<M;j++)
if(!b[j])
s[i]+=D[i][j];
}
sort(s,s+N);
int sum=0;
for(int j=R;j<N;j++)
sum+=s[j];
if(sum>maxim)
maxim=sum;
}
}
fout<<maxim;
fin.close();fout.close();
return 0;
}