Pagini recente » Cod sursa (job #1028455) | Cod sursa (job #2279826) | Cod sursa (job #1590558) | Cod sursa (job #2847755) | Cod sursa (job #1562724)
#include <cstdio>
#define MAXN 50000
int d[MAXN+1],l[MAXN+1],dist[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=0;
for(i=1;i<=n;i++){
if(d[i]>d[i-1]||(d[i]==d[i-1]&&l[i]>l[i-1]))
dist[i]=dist[i-1]+l[i]-l[i-1]+d[i]-d[i-1];
else
dist[i]=dist[i-1];
if(dist[i]>max)
max=dist[i];
}
fprintf(fout,"%d" ,max);
fclose(fi);
fclose(fout);
return 0;
}