Pagini recente » Cod sursa (job #2775176) | Cod sursa (job #3175340) | Cod sursa (job #2697890) | Cod sursa (job #1785989) | Cod sursa (job #185618)
Cod sursa(job #185618)
#include<stdio.h>
#include<algorithm>
using namespace std;
int sum[522],sum2[522],s2,k,su,max,i,j,x,aux,n,m,l,c,a[522][16];
char ok,v[16];
int cmp(int a,int b) {
return a>b;
}
int main(){
FILE *f=fopen("elimin.in","r");
fscanf(f,"%d %d %d %d",&n,&m,&l,&c);
max=-32001;
if(n>=m){
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
fscanf(f,"%d",&a[i][j]);
su+=a[i][j];
}
}
}
else{
for(i=1;i<=n;i++){
for(j=m;j>=1;j--){
fscanf(f,"%d",&a[j][i]);
su+=a[j][i];
}
}
aux=n; n=m; m=aux;
aux=c; c=l; l=aux;
}
for(j=1;j<=n;j++){
for(k=1;k<=m;k++){
sum[j]+=a[j][k];
}
}
for(i=0;i<=(1<<m)-1;i++){
for(j=m-1;j>=0;j--){
v[j+1]=(i>>j)&1;
}
x=0;
for(j=1;j<=m;j++){
if(v[j]==1)x++;
if(x>c)
break;
}
if(x==c){
s2=su;
for(j=1;j<=n;j++){
sum2[j]=sum[j];
}
for(j=1;j<=m;j++){
if(v[j]==1){
for(k=1;k<=n;k++){
s2-=a[k][j];
sum2[k]-=a[k][j];
}
}
}
sort(sum2+1,suma2+n+1,cmp);
for(k=1;k<=l;k++){
s2-=sum2[k];
}
if(s2>max)max=s2;
}
}
fclose(f);
FILE *g=fopen("elimin.out","w");
fprintf(g,"%d",max);
fclose(g);
return 0;
}