You are on page 1of 1

const

fi='express.inp';
fo='express.out';
var
f:text;
a:array[1..10000000]of longint;
i,n,s,k:longint;

procedure nhap;
begin
assign(f,fi);
reset(f);
readln(f,n,k);
for i:=1 to n do read(f,a[i]);
close(f);
end;

procedure sort(l,r:longint);
var u,v,t,x:longint;
begin
u:=l; v:=r; x:=a[(l+r)div 2];
repeat
while a[u]< x do inc(u);
while a[v]> x do dec(v);
if u<=v then
begin
t:=a[u];
a[u]:=a[v];
a[v]:=t;
inc(u);
dec(v);
end;
until u>v;
if u<r then sort(u,r);
if v>l then sort(l,v);
end;

procedure xuly;
begin
assign(f,fo);
rewrite(f);
sort(2,n);
s:=0;
for i:=1 to k+1 do s:=s+a[i];
for i:=k+2 to n do s:=s-a[i];
write(f,s);
close(f);
end;
begin
nhap;
xuly;
end.

You might also like