Cod sursa(job #1401525)

Utilizator LycrsTrifan Tamara Lycrs Data 25 martie 2015 22:32:05
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include<cstring>

using namespace std;
ifstream cin("carnati.in");
ofstream cout("carnati.out");

 struct tab{
	int t, p;
}a[2005];

int n, c, i, j, m, k, x, y, s, MX, D[2005], act;

bool cmp( const tab &x, const tab &y)
{
    return x.t < y.t;
}

int main()
{
	cin>>n>>c;
	
	for(i=1; i<=n; ++i) cin>>a[i].t>>a[i].p;
	
	
	
	sort(a+1, a+n+1, cmp);
	a[0].t=a[1].t-1;
	
	MX=-1;

	for(i=1; i<=n; ++i)
	{
		act=a[i].p;
		s=0;
		for(j=1; j<=n; ++j)
		{
			if (act<=a[j].p)
				D[j]=max(D[j-1] - (a[j].t-a[j-1].t)*c + act, act-c);
			else
				D[j]=D[j-1] - (a[j].t-a[j-1].t)*c;
				
			MX=max(D[j], MX);
			
		}
		
	}
	
	cout<<MX;
	
	return 0;
}