Pagini recente » Cod sursa (job #482761) | Cod sursa (job #3216054) | Cod sursa (job #791930) | Cod sursa (job #828775) | Cod sursa (job #133427)
Cod sursa(job #133427)
#include<stdio.h>
int ok,sum[501],s,k,su,v[20],max,i,j,x,aux,n,m,l,c,a[500][20];
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;
c=aux; c=l; l=aux;
}
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){
s=su;
for(j=1;j<=m;j++){
if(v[j]==1){
for(k=1;k<=n;k++){
s-=a[k][j];
}
}
}
for(j=1;j<=n;j++){
sum[j]=0;
}
for(j=1;j<=n;j++){
for(k=1;k<=m;k++){
if(v[k]!=1)
sum[j]+=a[j][k];
}
}
ok=1;
while(ok){
ok=0;
for(j=1;j<n;j++){
if(sum[j]>sum[j+1]){
aux=sum[j];
sum[j]=sum[j+1];
sum[j+1]=aux;
ok=1;
}
}
}
for(k=1;k<=l;k++){
s-=sum[k];
}
if(s>max)max=s;
}
}
fclose(f);
FILE *g=fopen("elimin.out","w");
fprintf(g,"%d",max);
fclose(g);
return 0;
}