Cod sursa(job #611801)

Utilizator CBogdanCiobanu Bogdan CBogdan Data 3 septembrie 2011 15:13:51
Problema Orase Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<cstdio>
#include<utility>
#include<algorithm>
using namespace std;

int N,M,i,x,y,O1,O2,SOL,dist1,dist2;
pair<int,int> V[50010];

void read(),solve();

int main()
{
	read();
	solve();
	
	return 0;
}

void read()
{
	freopen("orase.in","r",stdin);
	freopen("orase.out","w",stdout);
	scanf("%d%d",&M,&N);
	for(i=1;i<=N;i++)
	{
		scanf("%d%d",&x,&y);
		V[i].first=x;
		V[i].second=y;
	}
}

void solve()
{
	sort(V+1,V+N+1);
//	for(i=1;i<=N;i++)
//		printf("%d %d\n",V[i].first,V[i].second);
	O1=1;O2=2;
	SOL=V[O1].second+V[O2].first-V[O1].first+V[O2].second;
	for(i=3;i<=N;i++)
	{
		dist1=V[O1].second+V[i].first-V[O1].first+V[i].second;
		dist2=V[O2].second+V[i].first-V[O2].first+V[i].second;
		if(dist1>dist2)
		{
			O2=i;
			if(dist1>SOL)SOL=dist1;
		}
		else
		{
			O1=O2;
			O2=i;
			if(dist2>SOL)SOL=dist1;
		}
	}
	printf("%d\n",SOL);
}