Pagini recente » Cod sursa (job #2844823) | Cod sursa (job #1684194) | Cod sursa (job #3275409) | Cod sursa (job #1349926) | Cod sursa (job #3219529)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("elimin.in");
ofstream cout("elimin.out");
int n,m,L,C,a[7300][7300];
bool frl[7300];
long long Max,sum,sc[7300],total;
long long sol(){
long long s=0;
for(int i=1;i<=m;i++)
sc[i]=0;
for(int i=1;i<=n;i++)
if(!frl[i])
for(int j=1;j<=m;j++){
sc[j]+=a[i][j];
s+=a[i][j];
}
sort(sc+1,sc+m+1);
for(int j=1;j<=C;j++)
s-=sc[j];
return s;
}
void lini(int k,int last){
if(k==L+1){
int s=sol();
if(s>Max)
Max=s;
}else{
for(int i=last+1;i<=n;i++){
frl[i]=1;
lini(k+1,i);
frl[i]=0;
}
}
}
int main()
{
cin>>n>>m>>L>>C;
if(n<=m){
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
}else{
swap(n,m),swap(L,C);
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
cin>>a[j][i];
}
/*for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<'\n';
}*/
lini(1,0);
cout<<Max;
return 0;
}