Pagini recente » Cod sursa (job #2327238) | Cod sursa (job #1722780) | Cod sursa (job #72260) | Cod sursa (job #2667527) | Cod sursa (job #517420)
Cod sursa(job #517420)
#include <iostream>
#include <fstream>
#include <algorithm>
#define DN 700
using namespace std;
int n,m,r,c,a[DN][DN],v[DN],s[20],sm,sum;
void gen(int k, int t) {
if(k==r+1) {
for(int i=1; i<=n; ++i) for(int j=1; j<=m; ++j) v[j]+=a[i][j]*s[i];
sort(v+1,v+m+1);
for(int i=m; i>c;--i) sum+=v[i];
if(sum>sm) sm=sum;
sum=0;
fill(v+1, v+m+1,0);
return;
}
for(int i=t+1;i<=n-r+k;++i) {
s[i]=0;
gen(k+1,i);
s[i]=1;
}
}
int main()
{
ifstream f("elimin.in");
ofstream g("elimin.out");
f>>n>>m>>r>>c;
if(n<=m) for(int i=1; i<=n; ++i){
for(int j=1; j<=m; ++j) f>>a[i][j];
s[i]=1;
}
else {
for(int i=1; i<=n; ++i) {
for(int j=1; j<=m; ++j) f>>a[j][i];
s[i]=1;
}
swap(n,m); swap(r,c);
}
gen(1,0);
g<<sm;
return 0;
}