Cod sursa(job #636167)

Utilizator ada_sAda-Mihaela Solcan ada_s Data 19 noiembrie 2011 17:33:29
Problema Ferma2 Scor 100
Compilator cpp Status done
Runda .com 2011 Marime 0.97 kb
#include <fstream>
#define NMAX 1010
using namespace std;
int a[NMAX][NMAX], n, k, i, j, l;
long sum[NMAX][NMAX], sTotal, minS;
int main()
{
	ifstream fin("ferma2.in");
  ofstream fout("ferma2.out");
	fin>>n>>k;
	for (i=0; i<n; i++)
		for (j=0; j<=i; j++)
		{
			fin>>a[i][j];
			sTotal+=a[i][j];
		}//for j
	for (i=0; i<n-k; i++)
		for (j=0; j<=i; j++)
			sum[0][0]+=a[i][j];
	minS=sum[0][0];
	for (i=1; i<=(n-(n-k)); i++)
		for (j=0; j<=i; j++)
		{
			if (sum[i-1][j]>0)
			{
				sum[i][j]=sum[i-1][j];
				for (l=0; l<(n-k); l++)
				{
					sum[i][j]-=a[i-1+l][j+l];
					sum[i][j]+=a[i+n-k-1][j+l];
				}//for l
			}//if
			else
			{
				sum[i][j]=sum[i][j-1];
				for (l=0; l<(n-k); l++)
				{
					sum[i][j]-=a[i+l][j-1];
					sum[i][j]+=a[i+l][j+l];
				}//for l
			}//else
			if (sum[i][j]<minS)
				minS=sum[i][j];
		}//for j
	fout<<sTotal-minS<<"\n";
/*	for (i=0; i<n; i++)
	{
		for (j=0; j<=i; j++)
		
			printf("%ld ", sum[i][j]);
		printf("\n");
	}//for i*/
	return 0;
}//main