Pagini recente » Cod sursa (job #2477425) | Cod sursa (job #3327725) | Cod sursa (job #1650209) | Cod sursa (job #1199850) | Cod sursa (job #1950994)
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int v[7300][15];
long long s[7300];
int alegem[15];
int col, n, m;
long long sol;
void back(int tai, int poz){
if(tai==0){
long long suma=0;
int i,j;
for(j=0;j<m;j++){
s[j]=0;
for(i=0;i<n;i++){
if(alegem[i]==0)
s[j]+=1LL*v[i][j];
}
suma+=s[j];
}
sort(s,s+m);
for(i=0;i<col;i++){
suma-=1LL*s[i];
}
if(suma>sol)
sol=suma;
}else if(poz<n){
alegem[poz]=1;
back(tai-1,poz+1);
alegem[poz]=0;
back(tai,poz+1);
}
}
int main()
{
FILE *fin, *fout;
fin=fopen("elimin.in","r");
fout=fopen("elimin.out","w");
int i,j,tai,aux;
fscanf(fin,"%d%d%d%d",&n,&m,&tai,&col);
if(n<=m){
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(fin,"%d",&v[i][j]);
}else{
aux=n;
n=m;
m=aux;
aux=tai;
tai=col;
col=aux;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
fscanf(fin,"%d",&v[j][i]);
}
back(tai,0);
fprintf(fout,"%lld",sol);
fclose(fin);
fclose(fout);
return 0;
}