Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var a:array[0..1000000] of longint;
- i,j,m,n:longint;
- procedure sort(l,r: longint);
- var
- i,j,x,y: longint;
- begin
- i:=l;
- j:=r;
- x:=a[(l+r) div 2];
- repeat
- while a[i]<x do
- inc(i);
- while x<a[j] do
- dec(j);
- if not(i>j) then
- begin
- y:=a[i];
- a[i]:=a[j];
- a[j]:=y;
- inc(i);
- j:=j-1;
- end;
- until i>j;
- if l<j then
- sort(l,j);
- if i<r then
- sort(i,r);
- end;
- begin
- // assign(input,'banhchung.inp');
- // reset(input);
- // assign(output,'banhchung.out');
- // rewrite(output);
- readln(n,m);
- for i:=1 to m do
- begin
- readln(a[i]);
- if a[i]=n then
- begin
- write(n);
- halt;
- end;
- end;
- sort(1,m);
- if a[1]>n then
- begin
- write(0);
- halt;
- end;
- i:=1;
- j:=m;
- while (a[i]+a[j]>n) and (i<>j-1) do
- dec(j);
- while (a[i]+a[j]>n) and (i+1<>j) do
- inc(i);
- if a[i]+a[j]>n then
- begin
- for j:=j to m do
- if a[j]>n then exit;
- if a[j]>n then dec(j);
- a[i]:=0;
- end;
- write(a[i]+a[j]);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement