Cod sursa(job #405915)

Utilizator borsoszalanBorsos Zalan borsoszalan Data 28 februarie 2010 22:09:20
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
#include<stdlib.h>

int n,m,i,j, max, index, val;
struct asd{int d; int l;};
asd orase[50002];

int cmp(const void *a, const void *b)
{
	return ((asd *)a)->d-((asd *)b)->d;
}

int main()
{
	freopen("orase.in", "r", stdin);
	freopen("orase.out", "w", stdout);
	scanf("%d %d", &m, &n);
	for(i=1;i<=n;i++)
		scanf("%d %d", &orase[i].d, &orase[i].l);
	orase[0].d=-1;
	qsort(orase, n+1, sizeof(asd), cmp);
	index=1; val=orase[1].l-orase[1].d;
	for(i=2;i<=n;i++)
	{
		if(orase[i].l+orase[index].l+orase[i].d-orase[index].d>max)
			max=orase[i].l+orase[index].l+orase[i].d-orase[index].d;
		if(orase[i].l-orase[i].d>val)
		{
			val=orase[i].l-orase[i].d;
			index=i;
		}
	}
	printf("%d\n", max);
	return 0;
}