Pagini recente » Cod sursa (job #1429324) | Cod sursa (job #2825550) | Cod sursa (job #1740726) | Cod sursa (job #1321947) | Cod sursa (job #67488)
Cod sursa(job #67488)
var a,b,d,l:array[1..50000]of longint;
m,n,i,j,max,z,s,c:longint;
procedure Sort(s, r: Longint);
var
i, j, x, y: longint;
begin
i := s; j := r; x := d[(s+r) DIV 2];
repeat
while d[i] < x do i := i + 1;
while x < d[j] do j := j - 1;
if i <= j then
begin
y := d[i]; d[i] := d[j]; d[j] := y;
y:=l[i]; l[i]:=l[j]; l[j]:=y;
i := i + 1; j := j - 1;
end;
until i > j;
if s < j then Sort(s, j);
if i < r then Sort(i, r);
end;
begin
assign(input,'orase.in');
reset(input);
assign(output,'orase.out');
rewrite(output);
readln(m,n);
for i:=1 to n do
begin
readln(d[i],l[i]);
end;
sort(1,n);
{z:=0;
for i:=1 to n do
begin
if (z>0) and(d[z]=a[i])and(l[z]<b[i]) then
begin
l[z]:=b[i];
end
else
begin
inc(z);
d[z]:=a[i];
l[z]:=b[i];
end;
end;}
max:=0;
s:=0;
c:=0;
for i:=2 to n do
begin
s:=d[i]-d[1];
if max<s+l[i] then
begin
max:=s+l[i];
c:=i;
end;
end;
max:=0;
s:=0;
for i:=1 to n do
begin
if i=c then continue;
if i<c then s:=d[c]-d[i]
else s:=d[i]-d[c];
if max<s+l[i] then max:=s+l[i];
end;
writeln(max+l[c]);
close(output);
end.