Pagini recente » Cod sursa (job #205660) | Cod sursa (job #1375764) | Cod sursa (job #1075936) | Cod sursa (job #2743883) | Cod sursa (job #464713)
Cod sursa(job #464713)
#include <fstream>
#include <string.h>
#include <algorithm>
using namespace std;
ifstream q ("elimin.in");
ofstream w ("elimin.out");
int v[555][555];
int n,m,r,c,sol[555],S[555],S2[555],best;
void back(int k)
{int i;
if(k==c+1)
{int i,j,sum=0;
memcpy(S2,S,sizeof(S));
for(i=1;i<=c;i++)
for(j=1;j<=n;j++)
S2[j]-=v[j][sol[i]];
sort(S2+1,S2+n+1);
for(i=r+1;i<=n;i++)
sum+=S2[i];
if(sum>best)
best=sum;
return;}
for(i=sol[k-1]+1;i<=m;i++)
{sol[k]=i;
back(k+1);}}
int main()
{q>>n>>m>>r>>c;
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
q>>v[i][j];
if(n<m)
{for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(j>i)
swap(v[i][j],v[j][i]);
swap(n,m);
swap(r,c);}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
S[i]+=v[i][j];
back(1);
w<<best<<'\n';
return 0;}