Pagini recente » Cod sursa (job #1831569) | Cod sursa (job #2846967) | Cod sursa (job #1290890) | Cod sursa (job #1439345) | Cod sursa (job #7849)
Cod sursa(job #7849)
#include<iostream.h>
#include<fstream.h>
main()
{
long int a[1000][1000],i,j,r,c,s,n,m,t,min,aux;
long long k,x[1000][5];
fstream f("elimin.in",ios::in);
fstream g("elimin.out",ios::out);
f>>m; f>>n;
f>>r; f>>c;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
f>>a[i][j];
i=1;
do{
k=0;
for(j=1;j<=n;j++)
k+=a[i][j];
x[i][0]=k;
x[i][1]=0;
x[i][2]=i;
x[i][3]=1;
i++;
}while(i<=m);
j=1;
do{
k=0;
for(t=1;t<=m;t++)
k+=a[t][j];
x[i][0]=k;
x[i][1]=1;
x[i][2]=j;
x[i][3]=1;
i++;
j++;
}while(j<=n);
int d1,d2,d0;
int valid,con=0,alt,del;
do{ alt=1;del=0;
do{
if(x[alt][3]==1)
{min=x[alt][0];d1=x[alt][1];d2=x[alt][2];del=1; }
else alt++;
}while(del==0);
i=2;
valid=0;
do{
if((x[i][0]<min)&&(x[i][3]!=0))
{ min=x[i][0];
d1=x[i][1]; d2=x[i][2]; d0=i; }
i++;
}while(i<=(m+n));
x[d0][3]=0;
if((d1==1)&&(c>=1))
{ c--;i=1;
do{ x[i][0]-=a[i][d2]; a[i][d2]=-99;
i++;
}while(i<=m);
}
if((d1==0)&&(r>=1))
{ r--;j=1;
do{ x[m+j][0]-=a[d2][j];a[d2][j]=-99;
j++;
}while(j<=n);
}
if((c==0)&&(r==0))valid=1;
}while(valid==0);
long long rez;
rez=0;
i=1;
do{
if((x[i][0]!=-99)&&(x[i][3]!=0))rez+=x[i][0];
i++;
}while(i<=m);
g<<rez;
return 0;
}