Pagini recente » Cod sursa (job #2647082) | Cod sursa (job #39553) | Cod sursa (job #476141) | Cod sursa (job #2903686) | Cod sursa (job #611801)
Cod sursa(job #611801)
#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);
}