TYVJ题解(P1001)

Program Problem_P1001;
Var n,k:Longint;
Var a:array[1..10000] of Longint;
Var i,m:Longint;
procedure qsort(dep,top:longint);
var  i,j,s,t:longint;
begin
i:=dep; j:=top; s:=a[(i+j) div 2];
repeat
while a[i]<s do inc(i);
while a[j]>s do dec(j);
   if i<=j then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
inc(i);   dec(j);
end;
until i>j;
if dep<j then qsort(dep,j);
if i<top then   qsort(i,top);
end;
Function Prim(a:Longint):Boolean;
Var i:Longint;
Begin
Prim:=True;
For i:=2 to Trunc(sqrt(a)) Do
IF a mod i =0 Then
Exit(False);
End;
Begin
Readln(n,k);
For i:=1 to n do Read(a[i]);
Qsort(1,n);
M:=a[n-k+1]-a[k];
IF Prim(m)=True Then Writeln('YES')
Else Writeln('NO');
Write(m);
End.

posted @ 2011-07-26 18:02  SkyZone_H  阅读(131)  评论(0编辑  收藏  举报