Pagini recente » Cod sursa (job #2331171) | Cod sursa (job #214975) | Cod sursa (job #803953) | Cod sursa (job #2829117) | Cod sursa (job #1562738)
#include <cstdio>
#define MAXN 50000
int d[MAXN+1],l[MAXN+1];
inline void swap(int b,int e,int *v){
int aux=v[b];
v[b]=v[e];
v[e]=aux;
}
void myqsort(int begin,int end){
int b=begin,e=end,pivot=d[(b+e)/2];
while(b<=e){
while(d[b]<pivot) b++;
while(d[e]>pivot) e--;
if(b<=e){
swap(b,e,d);
swap(b,e,l);
b++;e--;
}
}
if(begin<e) myqsort(begin,e);
if(b<end) myqsort(b,end);
}
int main(){
FILE*fi,*fout;
int i,n,m,max,nr,j;
fi=fopen("orase.in" ,"r");
fout=fopen("orase.out" ,"w");
fscanf(fi,"%d%d" ,&m,&n);
for(i=1;i<=n;i++)
fscanf(fi,"%d%d" ,&d[i],&l[i]);
myqsort(1,n);
max=nr=l[1]+l[2]+d[2]-d[1];
for(i=3;i<=n;i++){
nr=nr+l[i]-l[i-1]+d[i]-d[i-1];
if(nr<d[i]-d[i-1]+l[i]+l[i-1])
nr=d[i]-d[i-1]+l[i]+l[i-1];
if(nr>max)
max=nr;
}
fprintf(fout,"%d" ,max);
fclose(fi);
fclose(fout);
return 0;
}