Pagini recente » Cod sursa (job #3192490) | Cod sursa (job #1854243) | Cod sursa (job #2510743) | Cod sursa (job #467263) | Cod sursa (job #6953)
Cod sursa(job #6953)
#include<iostream.h>
#include<fstream.h>
main()
{
long int a[100][100],i,j,r,c,s,n,m,t,min,aux;
long long k,x[100][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);
cout<<endl<<"START"<<endl<<endl;
for(i=1;i<=(m+n);i++)
cout<<x[i][0]<<" "<<x[i][1]<<" "<<x[i][2]<<endl;
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;
cout<<endl<<min<<" "<<d1<<" "<<d2<<endl;
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;
cout<<endl<<endl;
for(i=1;i<=m;i++)
{ cout<<endl;
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
}
for(i=1;i<=(m+n);i++)
{cout<<endl;
for(j=0;j<=3;j++)
cout<<x[i][j]<<" ";
}
con++;
}while(valid==0);
return 0;
}