Cod sursa(job #7820)

Utilizator blasterzMircea Dima blasterz Data 22 ianuarie 2007 18:40:14
Problema Euro Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>
#include <algorithm>
#define maxn 34568
using namespace std;

int main()
{
	long long dp[maxn], S[maxn];
	int n, i, j, x[maxn], t;
	freopen("euro.in", "r", stdin);
	scanf("%d %d\n", &n, &t);
	
	for(i=1;i<=n;i++) scanf("%d ", x+i);
	dp[0]=0;
	dp[1]=x[1]-t;
	S[0]=0;
	S[1]=x[1];
	for(i=2;i<=n;i++) S[i]=S[i-1]+x[i];
	
	for(i=2;i<=n;i++)
	{
		dp[i]=-0x3f3f3f3f;
		for(j=0;j<=i;j++)
			dp[i]=max(dp[i], dp[j]+(S[i]-S[j])*(i)-t);
		
	}
	//for(i=1;i<=n;i++) printf("%lld ",dp[i]); 
freopen("euro.out", "w", stdout);
	printf("%lld\n", dp[n]);
	return 0;
}