Pagini recente » Cod sursa (job #1830296) | Cod sursa (job #2717680) | Cod sursa (job #3202049) | Cod sursa (job #2837534) | Cod sursa (job #7208)
Cod sursa(job #7208)
#include<stdio.h>
long nr,nc,r,c,min,i,n,j,m,sum,mmin,max,sum1,x[700][700];
int main()
{
freopen ("elimin.in","rt",stdin);
freopen ("elimin.out","wt",stdout);
scanf("%ld %ld %ld %ld",&n,&m,&r,&c);
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
scanf("%ld",&x[i][j]), x[i][0]+=x[i][j];
}
for (j=1;j<=m;j++)
for (i=1;i<=n;i++)
x[0][j]+=x[i][j];
//first linii
while (nr<r)
{
mmin=2000000000;
for (i=1;i<=n;i++)
if (x[i][0]<mmin && x[i][0]>=0)
mmin=x[i][0],min=i;
x[min][0]=-1;
for (j=1;j<=m;j++)
x[0][j]-=x[min][j], x[min][j]=0;
nr++;
}
//2nd coloane
while (nc<c)
{
mmin=2000000000;
for (j=1;j<=m;j++)
if (x[0][j]<mmin && x[0][j]>=0)
mmin=x[0][j],min=j;
x[0][min]=-1;
for (i=1;i<=n;i++)
x[i][0]-=x[i][min], x[i][min]=0;
nc++;
}
sum=0;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++) sum+=x[i][j];
freopen ("elimin.in","rt",stdin);
scanf("%ld %ld %ld %ld",&n,&m,&r,&c);
for (i=1;i<=n;i++)
x[i][0]=0;
for (j=1;j<=m;j++)
x[0][m]=0;
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
scanf("%ld",&x[i][j]), x[i][0]+=x[i][j];
}
for (j=1;j<=m;j++)
for (i=1;i<=n;i++)
x[0][j]+=x[i][j];
nr=nc=0;
while (nc<c)
{
mmin=2000000000;
for (j=1;j<=m;j++)
if (x[0][j]<mmin && x[0][j]>=0)
mmin=x[0][j],min=j;
x[0][min]=-1;
for (i=1;i<=n;i++)
x[i][0]-=x[i][min], x[i][min]=0;
nc++;
}
while (nr<r)
{
mmin=2000000000;
for (i=1;i<=n;i++)
if (x[i][0]<mmin && x[i][0]>=0)
mmin=x[i][0],min=i;
x[min][0]=-1;
for (j=1;j<=m;j++)
x[0][j]-=x[min][j], x[min][j]=0;
nr++;
}
sum1=0;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++) sum1+=x[i][j];
max=sum>sum1?sum:sum1;
printf("%ld\n",max);
return 0;
}