Cod sursa(job #319264)

Utilizator ooctavTuchila Octavian ooctav Data 30 mai 2009 23:30:54
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
// orase.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <cstdlib>

struct it
{
	int a,b;
}e[50001];
int n,m,dist=0,r=0,o=0,dif;

int compar(const void *a ,const void *b)
{
	return(*(int*)a-*(int*)b);
}
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",&e[i].a,&e[i].b);
	qsort(e+1,n,sizeof(e[1]),compar);
	for(int i=1;i<=n;i++)
		if(e[i].b-e[i].a>dist)
		{
			dist=e[i].b-e[i].a;
			o=i;
		}
	dist=0;
	for(int i=n;i>=1;i--)
		if(e[i].b-m+e[i].a>dist && i!=o)
		{
			dist=e[i].b-m+e[i].a;
			r=i;
		}
	dif=e[r].a-e[o].a;
	if(dif<0)
		dif=-dif;

	printf("%d\n",e[o].b+e[r].b+dif);

	return 0;
}