Cod sursa(job #541251)

Utilizator raul1520Raul Andrei raul1520 Data 24 februarie 2011 22:22:10
Problema Orase Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int s,i,p,u,ul,pr,smax,n,m,c,d;
struct oras
{
	int d;
	int l;
};
bool cmp(oras x,oras y)
{
	return(x.d<y.d);
}
oras a[50005];
void Read()
{
	freopen("orase.in","r",stdin);
	freopen("orase.out","w",stdout);
	scanf("%d%d",&n,&m);
//	for(i=1;i<=n;i++)
//	{
		scanf("%d%d",&a[1].d,&a[1].l);
		scanf("%d%d",&a[2].d,&a[2].l);
//	}
	s=0;
	smax=0;
}
void Do()
{
	sort(a+1,a+n+1,cmp);
	s=a[1].l+a[2].l+a[2].d;
	for(i=3;i<=n;i++)
	{
		scanf("%d%d",&a[i].d,&a[i].l);
		if(s-a[i-1].l+a[i].l+a[i].d-a[i-1].d>=a[i-1].l+a[i].l+a[i].d-a[i-1].d)
		{
			s=s-a[i-1].l+a[i].l+a[i].d-a[i-1].d;
		}
		else
		{
			s=a[i-1].l+a[i].l+a[i].d-a[i-1].d;
		}
		if(s>smax)
		{
			smax=s;
		}
	}
}
void Write()
{
	printf("%d",smax);
}
int main()
{
	Read();
	Do();
	Write();
	return 0;
}