Pagini recente » Istoria paginii utilizator/ottelinowo | Istoria paginii utilizator/amalia001 | Profil Madi | Monitorul de evaluare | Cod sursa (job #169414)
Cod sursa(job #169414)
#include<stdio.h>
#include<algorithm>
using namespace std;
int n,m,r,c,s[600];
int nr[550][550],sol[20];
int suma;
void back(int poz,int elim){
if(poz>m+1)
return;
if(elim==r){
int i,j,sum;
for(i=1;i<=n;++i){
s[i]=0;
for(j=1;j<=m;++j)
if(!sol[j])
s[i]+=nr[i][j];
}
sort(s+1,s+n+1);
sum=0;
for(i=c+1;i<=n;++i)
sum+=s[i];
if(sum>suma)
suma=sum;
}
else{
sol[poz]=1;
back(poz+1,elim+1);
sol[poz]=0;
back(poz+1,elim);
}
}
int main(){
freopen("elimin.in","r",stdin);
freopen("elimin.out","w",stdout);
int i,j;
suma=-2100000000;
scanf("%d%d%d%d",&m,&n,&r,&c);
if(m>n){
i=n;
n=m;
m=i;
i=r;
r=c;
c=i;
for(j=1;j<=m;++j){
for(i=1;i<=n;++i)
scanf("%d",&nr[i][j]);
}
}
else{
for(i=1;i<=n;++i){
for(j=1;j<=n;++j)
scanf("%d",&nr[i][j]);
}
}
back(1,0);
printf("%d\n",suma);
fclose(stdin);
fclose(stdout);
return 0;
}