Pagini recente » Cod sursa (job #437582) | Cod sursa (job #1580915) | Cod sursa (job #448416) | Cod sursa (job #496481) | Cod sursa (job #1312206)
#include <fstream>
#include <cstring>
#include <algorithm>
#define DIM 650
using namespace std;
ifstream fin("elimin.in");
ofstream fout("elimin.out");
int D[DIM][DIM],N,M,R,C,s[DIM],maxim;
bool b[DIM];
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=1;k<=(1<<M)-1;k++){
int nr=0,mask=k;
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);
unsigned long long 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;
}