Pagini recente » Atasamentele paginii Profil Ellyzza | Cod sursa (job #1525184) | Cod sursa (job #2508471) | Monitorul de evaluare | Cod sursa (job #1722060)
#include <cstdio>
#include <algorithm>
#define MAXN 14
#define MAXC 7294
int m[MAXN+1][MAXC+1], v[MAXC+1];
int main(){
int nrlin, nrcol, a, b, i, j, aux, l, ans, sum, p;
FILE *fin, *fout;
fin=fopen("elimin.in", "r");
fout=fopen("elimin.out", "w");
fscanf(fin, "%d%d%d%d", &nrlin, &nrcol, &a, &b);
if(nrlin<nrcol){
for(i=1; i<=nrlin; i++){
for(j=1; j<=nrcol; j++){
fscanf(fin, "%d", &m[i][j]);
}
}
}else{
for(i=1; i<=nrlin; i++){
for(j=1; j<=nrcol; j++){
fscanf(fin, "%d", &m[j][i]);
}
}
aux=nrlin;
nrlin=nrcol;
nrcol=aux;
aux=a;
a=b;
b=aux;
}
ans=0;
for(i=0; i<(1<<nrlin)-1; i++){
p=0;
for(j=0; j<nrlin; j++) p+=((i&(1<<j))!=0);
if(p==a){
for(l=1; l<=nrlin; l++){
if((i&(1<<(l-1)))==0){
for(j=1; j<=nrcol; j++) v[j]+=m[l][j];
}
}
std::sort(v+1, v+nrcol+1);
sum=0;
for(j=nrcol; j>b; j--){
sum+=v[j];
v[j]=0;
}
for(j=b; j>0; j--) v[j]=0;
if(sum>ans) ans=sum;
}
}
fprintf(fout, "%d\n", ans);
fclose(fin);
fclose(fout);
return 0;
}