Cod sursa(job #553423)

Utilizator Addy.Adrian Draghici Addy. Data 14 martie 2011 00:22:29
Problema Carnati Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
#include <algorithm>

using namespace std;

#define NMAX 2011

struct client {
	int p, t;
} C[NMAX];

int A[NMAX], sol, n, p, c, x, i, j;

bool cmp (client a, client b) {
	return a.t < b.t;
}

int main  () {
	
	freopen ("carnati.in", "r", stdin);
	freopen ("carnati.out", "w", stdout);
	
	scanf ("%d %d", &n, &c);
	
	for (i = 1; i <= n; i++)
		scanf ("%d %d", &C[i].t, &C[i].p);
	
	sort (C + 1, C + 1 + n, cmp);
	
	for (j = 1; j <= n; j++) {
		p = C[j].p;
		
		for (i = 1; i <= n; i++) {
			if (C[i].p >= p) x = p;
			else x = 0;
			
			A[i] = max (x - c, A[i-1] + x - (C[i].t - C[i-1].t) * c);
			if (A[i] > sol) sol = A[i];
		}
	}
	
	printf ("%d", sol);
	
	return 0;
}