Cod sursa(job #384606)

Utilizator HoriaClementHoriaC HoriaClement Data 20 ianuarie 2010 15:40:57
Problema Orase Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
#include <algorithm>

using namespace std;
#define N 50001
struct rr
{
	int d,l;
} v[N];

bool comp(rr x, rr y)
{
	return x.d<y.d;
}

int main()
{
	int i0,dmax=0,i,i1=1,m,n;
	freopen("orase.in","r",stdin);
	freopen("orase.out","w",stdout);
	scanf("%d%d",&m,&n);
	for(i=1;i<=n;++i)
		scanf("%d%d",&v[i].d,&v[i].l);
		sort(v+1,v+n+1,comp);
		i0=v[1].l;
		for(i=2;i<=n;++i)
		{
			if(v[i].l+v[i0].l+v[i].d-v[i0].d > dmax)
			{
				dmax=v[i].l+v[i0].l+v[i].d-v[i0].d;
				i1=i;
			}
				
		}
		for(i=i1;i<=n;++i)
		{
			if(v[i].l+v[i1].l+v[i].d-v[i1].d > dmax)
				dmax=v[i].l+v[i1].l+v[i].d-v[i1].d;
		}
		for(i=i1;i<=1;i--)
		{
			if(v[i].l+v[i1].l+v[i].d-v[i1].d > dmax)
				dmax=v[i].l+v[i1].l+v[i].d-v[i1].d;
		}
	printf("%d",dmax);
return 0;
}