Pagini recente » Cod sursa (job #2351607) | Cod sursa (job #2509736) | Cod sursa (job #2929093) | Cod sursa (job #966378) | Cod sursa (job #543093)
Cod sursa(job #543093)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct oras{int dis;int lun;};
oras v[50010];
bool cmp(oras a,oras b)
{
return(a.dis<b.dis);
}
int m,n,i,bestdist,dist,u;
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",&v[i].dis,&v[i].lun);
}
sort(v+1,v+n+1,cmp);
if(n==1)
{
printf("0");
return 0;
}
if(n==2)
{
bestdist=v[1].lun+v[2].lun+v[2].dis-v[1].dis;
printf("%d",bestdist);
return 0;
}
else
{
u=1;
for(i=3;i<=n;i++)
{
if(v[i-1].lun>v[u].lun+v[i-1].dis-v[u].dis)
{
dist=v[i-1].lun+v[i].lun+v[i].dis-v[i-1].dis;
u=i-1;
}
else
{
dist=v[u].lun+v[i].lun+v[i].dis-v[u].dis;
}
if(dist>bestdist)
{
bestdist=dist;
}
}
printf("%d",bestdist);
}
return 0;
}