Cod sursa(job #756698)

Utilizator VisuianMihaiMihai Visuian VisuianMihai Data 10 iunie 2012 11:33:12
Problema Euro Scor 45
Compilator cpp Status done
Runda Remember Mihai Pătrașcu Marime 0.6 kb
#include <fstream>
using namespace std;
ifstream fin("euro.in");
ofstream fout("euro.out");
#define MAXN 34569
int N, T;
int x[MAXN];
long long best[MAXN];

int main()
{
	fin >> N >> T;
	best[0] = 0;
	int i, last = 1;
	int j; 
	long long S = 0; 
	int p = -1;
	for (i = 1; i <= N; i++)
	{
		fin >> x[i];
		best[i] = -(1LL << 60);
		p = -1;
		S = 0;
		for (j = i; j >= last; j--)
		{
			S += i * x[j];
			if (best[j - 1] + S - T > best[i])
			{
				best[i] = best[j - 1] + S - T;
				p = j;
			}
		}
		last = p;
	}
	fout << best[N];
	fin.close();
	fout.close();
	return 0;
}