Cod sursa(job #637974)

Utilizator thesilverhand13FII Florea Toma Eduard thesilverhand13 Data 20 noiembrie 2011 17:52:14
Problema Ferma2 Scor 10
Compilator cpp Status done
Runda .com 2011 Marime 1.3 kb
 # include <fstream>
 
 # define dim 1005
 
 using namespace std;
 
 ifstream f("ferma2.in");
 ofstream g("ferma2.out");
 
 int a[ dim ][ dim ];
 int suma;
 int n, k;
 int nr, sumamaxima;
 
 void citire()
 {
	 int i, j;
	 f >> n >> k;
	 for ( i = 1 ; i <= n ; i++ )
		 for ( j = 1 ; j <= i ; j++ )
		 {
			 f >> a[ i ][ j ];
			 suma = suma + a[ i ][ j ];
		 }
		 
		 /*for ( i = 1 ; i <= n ; i ++ )
		 {
			 for ( j = 1 ; j <= n ; j++ )
				 g << a[ i ][ j ] << " ";
			 g << "\n";
		 }*/
 }
 
 void rezolva()
 {
	 int i, j, p, sumac = 0;
	 nr = n - k;
	 for ( i = nr ; i <= n ; i++ )
		 for ( j = 1 ; j <= i - nr + 1 ; j++ )
		 {
			sumac = 0;
			// g << i << " " << j ;
			// g << "\n";
			// g << "\n";
			 for( p = 1 ; p < nr ; p++ )
			 {
				sumac = sumac + a[ i - p ][ j ] + a[ i ][ p + j ] + a[ i - p ][ j + p ];
				//g << i << " " << j << "\n";
				//g << i - p << " " << j << "\n";
                //g << i << " " << p + j  << "\n";
			 }
			// g << "\n";
			 
			 
				// sumac = sumac + a[ i - p ][ j ] + a[ i ][ p + j ];
			 //g << sumamaxima - sumac << "\n";
			 if ( sumamaxima < suma - ( sumac + a[ i ][ j ] )  )
				 sumamaxima = suma - ( sumac + a[ i ][ j ] );
		 }
	 
	 g << sumamaxima;
 }
 
 int main()
 {
	 citire();
	 rezolva();
	 return 0;
 }