Cod sursa(job #31184)

Utilizator MirceampMuresan Mircea Paul Mirceamp Data 15 martie 2007 17:01:16
Problema Elimin Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.61 kb

#include <fstream>
#include <iomanip>

using namespace std;

int a[100][100], m, n;
ofstream fout("elimin.out"); 	 
int r,c;

void Read();
void Write();
void Stergelinie(int l);
void StergeCol(int c);

int main()
{
 	Read();
	Write();
 		 int i,j,t,s;
 	 int imin = 0, jmin = 0;
 	 int min = a[0][0];
 	int smin=a[0][0];
 	 for(t = 1; t <= r; t++)
 	 { 
   	   	   smin=10000; imin = 0;
		  for( i = 0; i < m; i++)
		  {
		  	     s=0;
				 for( j = 0; j < n; j++)
				    s+=a[i][j];
				 if(s < smin)
				 {
				  smin=s	;
				  imin=i;    
				  }
		  }
		  Stergelinie(imin);
		  }
		  
	 for( t = 1; t <= c; t++)
 	 {
	  	  smin=10000; jmin=0;
		  for( j = 0; j < n; j++)
		  {
		  	   s=0;
				 for( i = 0; i < m; i++)
				 s+=a[i][j];
				 if(s < smin)
				 {
				  smin=s	;
				  jmin=j;    
				  }
		  }
		StergeCol(jmin);
				  
  		 }					 
 
    
   Write();

	fout.close();
}

void Read()
{
 	 ifstream fin("elimin.in");
 	 fin >> m >> n>>r>>c;
	 for ( int i = 0; i < m; i++ )
	 	 for ( int j = 0; j < n; j++ )
		  	 fin >> a[i][j];
	fin.close();
}	 

void Write()
{
	 for ( int i = 0; i < m; i++ )
	 {
	 	 for ( int j = 0; j < n; j++ )
		  	 fout << setw(4) <<  a[i][j];
 		 fout << '\n';
	 }
  	 fout << '\n';
}	  	 
		  	 
void Stergelinie(int l)
{
 	 int i, j;
						 
     for( i = l + 1 ; i < m ; i++)
     	  for( j =0 ; j < n; j++)
     	  a[i-1][j] = a[i][j];
	  m--;
}
void StergeCol(int c)
{
	int i, j;	 
     for( i = 0 ; i < m ; i++)
     	  for( j =c + 1 ; j < n; j++)
     	  a[i][j-1] = a[i][j];
     n--;
}