Pagini recente » Cod sursa (job #135532) | Cod sursa (job #2942579) | Cod sursa (job #2907974) | Cod sursa (job #897952) | Cod sursa (job #175848)
Cod sursa(job #175848)
#include <cstdio>
#include <algorithm>
#define NM 50001
#define l(x) v[x].l
#define d(x) v[x].d
using namespace std;
struct ch{int l,d;} v[NM];
int n,m;
int cmp(ch x,ch y)
{if (x.d<y.d) return 1;
return 0;
}
int main()
{freopen("orase.in","r",stdin);
freopen("orase.out","w",stdout);
scanf("%d %d",&m,&n);
if (n==1){printf("0");return 0;}
int i;
for (i=1;i<=n;i++) scanf("%d %d",&v[i].d,&v[i].l);
sort(v+1,v+n+1,cmp);
int r1=1,r2=2,bufr1,bufr2,max1,max2;
int max=l(1)+l(2)+d(2)-d(1);
for (i=3;i<=n;i++)
{bufr1=r1;bufr2=r2;
max1=l(r1)+l(i)+d(i)-d(r1);
max2=l(r2)+l(i)+d(i)-d(r2);
if (max1>max) {max=max1;
r2=i;
r1=bufr1;
}
if (max2>max) {max=max2;
r1=i;
r2=bufr2;
}
}
printf("%d",max);
return 0;
}