Cod sursa(job #464594)

Utilizator aladinaladin aladinn aladin Data 20 iunie 2010 23:32:37
Problema Carnati Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <cstdio>
int t[2001],p[2001];

int main()
{
	int j,n,i,maxdr,maxst,max=0,c;
	
	freopen("carnati.in","r",stdin);
	scanf("%d %d",&n,&c);
	for (i=1;i<=n;++i) scanf("%d %d",&t[i],&p[i]);
	for (i=1;i<=n;++i)
	{
		int mx=p[i]-c,nr=0;
		maxst=maxdr=0;
		for (j=i-1;j>0;--j)
			
				if (p[j]>=p[i]) 
					{++nr;
				if (nr*p[i]-(t[i]-t[j])*c>maxst) maxst=nr*p[i]-(t[i]-t[j])*c;
					}
		nr=0;
		for (j=i+1;j<=n;++j)
			
				if (p[j]>=p[i]) 
					{++nr;
				if (nr*p[i]-(t[j]-t[i])*c>maxdr) maxdr=nr*p[i]-(t[j]-t[i])*c;
					}
		if (mx+maxst+maxdr>max) max=mx+maxst+maxdr;
	}
  freopen("carnati.out","w",stdout);
printf("%d",max);
return 0;}