Cod sursa(job #261197)

Utilizator alexeiIacob Radu alexei Data 17 februarie 2009 22:31:01
Problema Orase Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
#define NMAX 50002

typedef struct{
	int poz,cost;
}q;
q V[NMAX];

inline int cmp(q a,q b)
{
	if( a.poz==b.poz )
		return a.cost<b.cost;
	else
		return a.poz<b.poz;
}

char s[NMAX*5];

int main()
{
	freopen("orase.in","r",stdin);
	freopen("orase.out","w",stdout);

	int N,M;
	scanf("%d%d\n",&N,&M);

	int i,a1,a2;

	for(i=1; i<=N; ++i)
		scanf("%d%d\n",&V[i].poz,&V[i].cost);

	sort( V+1, V+N+1, cmp );

	int p1;
	int q2=V[1].poz,c2=V[1].cost;
	int ANS=-1;
	for(p1=2; p1<=N; ++p1)
	{
		a1= V[ p1 ].poz - q2 + V[ p1 ].cost + c2;
		if( a1>ANS ) ANS=a1;

		if( V[ p1 ].cost > a1- V[ p1 ].cost )
			q2=V[ p1 ].poz,c2=V[ p1 ].cost;
	}
	
	printf("%d\n",ANS);

	return 0;
}