Pagini recente » Cod sursa (job #1283440) | Cod sursa (job #1198340) | Cod sursa (job #528614) | Cod sursa (job #2638861) | Cod sursa (job #181745)
Cod sursa(job #181745)
var d,l : array[0..50010] of longint;
i,j,m,n,max,fin : longint;
f,g : text;
procedure sort(ll,r : integer);
var i,j,x,y : longint;
aux : longint;
begin
i:=ll; j:=r; x:=d[(ll+r)div 2];
y:=l[(ll+r)div 2];
repeat
while (d[i]<x)or((d[i]=x)and(l[i]<y))
do inc(i);
while (x<d[j])or((x=d[j])and(y<l[j]))
do dec(j);
if i<=j then
begin
aux:=d[i];d[i]:=d[j];d[j]:=aux;
aux:=l[i];l[i]:=l[j];l[j]:=aux;
inc(i); dec(j);
end;
until i>j;
if ll<j then sort(ll,j);
if i<r then sort(i,r);
end;
begin
assign(f,'orase.in');reset(f);
assign(g,'orase.out');rewrite(g);
read(f,m,n);
for i:=1 to n do
read(f,d[i],l[i]);
sort(1,n);
max:=l[1]-d[1];
fin:=-maxlongint;
for i:=2 to n do
begin
if d[i]+l[i]+max>fin then
fin:=d[i]+l[i]+max;
if l[i]-d[i]>max then
max:=l[i]-d[i];
end;
writeln(g,fin);
close(g);
end.