Pagini recente » Cod sursa (job #1003097) | Cod sursa (job #2260248) | Cod sursa (job #2565455) | Cod sursa (job #1961518) | Cod sursa (job #150122)
Cod sursa(job #150122)
program orase;
var f,g:text;
ma,max,m,n,i,j,ord,aux,k,d:longint;
a,b:array[0..1000002]of longint;
function poz(li,ls:longint):longint;
var i,j,modi,modj,m,aux:longint;
begin
i:=li;
j:=ls;
modi:=0;
modj:=-1;
while (i<=j)do
begin
if (a[i]>a[j])then
begin
aux:=a[i];
a[i]:=a[j];
a[j]:=aux;
aux:=b[i];
b[i]:=b[j];
b[j]:=aux;
m:=modi;
modi:=-modj;
modj:=-m;
end;
i:=i+modi;
j:=j+modj;
end;
poz:=i;
end;
procedure quick(li,ls:longint);
begin
if (li<ls)then
begin
k:=poz(li,ls);
quick(li,k-1);
quick(k+1,ls);
end;
end;
begin
assign(f,'orase.in');
assign(g,'orase.out');
reset(f);
rewrite(g);
read(f,ma,n);
for i:=1 to n do read(f,a[i],b[i]);
quick(1,n);
m:=0;
if (a[1]>b[1])then m:=a[1]-b[1] else m:=b[1]-a[1];
for i:=2 to n do
begin
if (a[i]>ma)then break;
if (a[i]+b[i]+m>max)then
max:=m+a[i]+b[i];
if (a[i]>b[i])then d:=a[i]-b[i] else d:=b[i]-a[i];
if (d<m)then m:=d;
end;
write(g,max);
closE(f);
close(g);
end.