Pagini recente » Cod sursa (job #448976) | Cod sursa (job #2201398) | Cod sursa (job #2781491) | Autentificare | Cod sursa (job #2081856)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("elimin.in");
ofstream cout("elimin.out");
int M,N,R,C,a[7301][21],i,j,S,St,xl[7301],sl[7301],x[21],Max=0;
void Comb(int k){
int i;
for(int j=x[k-1]+1;j<=N;j++)
{
x[k]=j;
for(i=1;i<=M;i++)
{
xl[i]-=a[i][j];
St-=a[i][j];
}
if(k==C){
for(i=1;i<=M;i++)
sl[i]=xl[i];
int sum=St;
sort(sl+1,sl+M+1);
for(i=1;i<=R;i++)
sum-=sl[i];
Max=max(Max,sum);
}
else
Comb(k+1);
for(i=1;i<=M;i++)
{
xl[i]+=a[i][j];
St+=a[i][j];
}
}
}
void tipar(){
}
int main()
{ St=0;
cin>>M>>N>>R>>C;
if(M<N)
for(i=1;i<=M;i++)
for(j=1;j<=N;j++){
cin>>a[i][j];
xl[i]+=a[i][j];
St+=a[i][j];
}
else{
for(i=1;i<=M;i++)
for(j=1;j<=N;j++){
cin>>a[j][i];
xl[j]+=a[j][i];
St+=a[j][i];
}
swap(R,C);
swap(N,M);
}
Comb(1);
cout<<Max;
return 0;
}