Pagini recente » Cod sursa (job #2131323) | Cod sursa (job #3001900) | Cod sursa (job #2514006) | Cod sursa (job #2691717) | Cod sursa (job #1831093)
#include <cstdio>
#define CMAX 50000
using namespace std;
int poz[CMAX + 1],dist[CMAX + 1];
void qsort(int b,int e) {
int st,dr,aux,piv;
piv = poz[(b + e) >> 1];
st = b;
dr = e;
while (st < dr) {
while (poz[st] < piv)
st++;
while (poz[dr] > piv)
dr--;
if (st < dr) {
aux = poz[st];
poz[st] = poz[dr];
poz[dr] = aux;
aux = dist[st];
dist[st] = dist[dr];
dist[dr] = aux;
st++;
dr--;
}
}
if (st < e)
qsort(st + 1,e);
if (dr > b)
qsort(b,dr - 1);
}
int main(){
freopen("orase.in","r",stdin);
freopen("orase.out","w",stdout);
int l,n,i,d,dmax = 0,st;
scanf("%d%d",&l,&n);
for (i=1;i<=n;i++)
scanf("%d%d",&poz[i],&dist[i]);
qsort(1,n);
st = 1;
for (i=2;i<=n;i++) {
d = dist[st] + dist[i] + poz[i] - poz[st];
if (d > dmax)
dmax = d;
if (dist[i] > dist[st] + poz[i] - poz[st])
st = i;
}
printf("%d",dmax);
return 0;
}