Pagini recente » Cod sursa (job #2320054) | Cod sursa (job #1580962) | Cod sursa (job #902278) | Cod sursa (job #2720015) | Cod sursa (job #719508)
Cod sursa(job #719508)
#include <fstream>
#include<cstdio>
#include<algorithm>
using namespace std;
int aux,smax,i,j,m,n,r,c,x[10000],v[700][21];
ifstream f("elimin.in");
ofstream g("elimin.out");
void verifica()
{int s,i,j,sum[10000];
for(i=1;i<=m;i++)
sum[i]=v[i][0];
for(i=1;i<=c;i++)
for(j=1;j<=m;j++)
sum[j]=sum[j]-v[j][x[i]];
sort(sum+1,sum+1+m);
s=0;
for(i=r+1;i<=m;i++)
s=s+sum[i];
if(s>smax)
smax=s;}
int main()
{f>>m>>n>>r>>c;
if(m<n)
{for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
f>>v[j][m-i+1];
aux=n;
n=m;
m=aux;
aux=r;
r=c;
c=aux;}
else
{for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
f>>v[i][j];}
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{v[0][j]=v[0][j]+v[i][j];
v[i][0]=v[i][0]+v[i][j];}
for(i=1;i<=c;i++)
x[i]=i;
verifica();
while(1)
{i=c;
while(x[i]==n-c+i)
{i--;}
if(i==0)
break;
else
{x[i]++;
for(j=i+1;j<=c;j++)
x[j]=x[j-1]+1;
verifica();}}
g<<smax<<"\n";
f.close();
g.close();
return 0;}