Cod sursa(job #204945)

Utilizator AndreyPAndrei Poenaru AndreyP Data 28 august 2008 13:25:37
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
int n,m,dmax,rez;
struct oras
{
	int d,l;
};
oras v[50005];
bool compar(const oras &x,const oras &y)
{
	if(x.d<y.d)
		return true;
	return false;
}
int main()
{
	freopen("orase.in","r",stdin);
	freopen("orase.out","w",stdout);
	scanf("%d%d",&m,&n);
	for(int i=1; i<=n; i++)
		scanf("%d%d",&v[i].d,&v[i].l);
	sort(v+1,v+n+1,compar);
	if(n==1)
	{
		printf("0\n");
		return 0;
	}
	rez=v[2].l+v[2].d+v[1].l-v[1].d;
	dmax=v[1].l-v[1].d;
	for(int i=2; i<=n; i++)
	{
		if(v[i].l+v[i].d+dmax>rez)
			rez=v[i].l+v[i].d+dmax;
		if(v[i].l-v[i].d>dmax)
			dmax=v[i].l-v[i].d;
	}
	printf("%d\n",rez);
	return 0;
}