Pagini recente » Cod sursa (job #1894718) | Cod sursa (job #916814) | Cod sursa (job #753219) | Cod sursa (job #3180900) | Cod sursa (job #1204552)
#include<fstream>
using namespace std;
#define MAXN 1000002
int D[MAXN],L[MAXN],M,N;
void QUICKSORT(int inf,int sup)
{
int x,i,j,t;
i=inf;
j=sup;
x=D[(i+j)/2];
do{
while ((i<sup)&&(D[i]<x)) i++;
while ((j>inf)&&(D[j]>x)) j--;
if (i<=j)
{
t=D[i];
D[i]=D[j];
D[j]=t;
t=L[i];
L[i]=L[j];
L[j]=t;
i++;
j--;
}
}while (i<=j);
if (inf<j) QUICKSORT(inf,j);
if (i<sup) QUICKSORT(i,sup);
}
ifstream cin("orase.in");
ofstream cout("orase.out");
int main() {
int i,max1=0,max2=0;
cin>>M>>N;
for(i=1;i<=N;i++)
cin>>D[i]>>L[i];
QUICKSORT(1,N);
for(i=2;i<=N;i++) {
if(max1<L[i-1]-D[i-1])
max1=L[i-1]-D[i-1];
if(max2<L[i]+D[i])
max2=L[i]+D[i];
}
cout<<max1+max2;
cin.close();
cout.close();
return 0;
}