Pagini recente » Cod sursa (job #875956) | Cod sursa (job #119479) | Cod sursa (job #635398) | Cod sursa (job #2661996) | Cod sursa (job #68016)
Cod sursa(job #68016)
#include<stdio.h>
int a[50001],b[50001],n,m,i,j;
int poz(int st,int dr)
{int x=0,y=-1,aux;
while(st<dr)
{if(a[st]>a[dr])
{aux=a[st];
a[st]=a[dr];
a[dr]=aux;
aux=b[st];
b[st]=b[dr];
b[dr]=aux;
aux=x;
x=-y;
y=-aux;}
st+=x;dr+=y;}
return st;}
void qsort(int st,int dr)
{if(st>=dr)return;
int k=poz(st,dr);
qsort(st,k-1);
qsort(k+1,dr);}
int main()
{freopen("orase.in","r",stdin);
freopen("orase.out","w",stdout);
scanf("%d %d",&m,&n);
for(i=1;i<=n;i++)
scanf("%d %d",&a[i],&b[i]);
qsort(1,n);
unsigned long max=0;
j=1;
for(i=2;i<=n;i++)
{if(max<a[i]-a[j]+b[i]+b[j])
max=a[i]-a[j]+b[i]+b[j];
if(b[i]>a[i]-a[j]+b[j]) j=i;}
printf("%u",max);
fclose(stdout);
return 0;}