tyvjp1085 派对

P1085 - 派对

From Admin    Normal (OI) 总时限:10s    内存限制:128MB

描述 Description

Matrix67发现身高接近的人似乎更合得来。Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排在圆桌上。Matrix67的安排原则是,圆桌上任意两个相邻人的身高之差不能超过K。请告诉Matrix67他共有多少种安排方法。

输入格式 InputFormat

    第一行输入两个用空格隔开的数N和K,其中1<=N<=10,1<=K<=1 000 000。 第二行到第N+1行每行输入一个人的身高值。所有人的身高都是不超过1 000 000的正整数

输出格式 OutputFormat

    输出符合要求的安排总数

样例输入 SampleInput [复制数据]

4 10
2
16
6
10

样例输出 SampleOutput [复制数据]

2

数据范围和注释 Hint

各个测试点1s

时间限制 TimeLimitation

各个测试点1s
program tyvj1085;
var a:array[1..10] of longint;
   mark:array[1..10] of boolean;
   n,k,i,ans,kk,first:longint;
procedure dfs(k,sum:longint);
var i:integer;
begin
if (sum=n) and(abs(a[k]-a[first])<=kk) then inc(ans)
 else
  for i:=1 to n do
   if (not mark[i]) and (abs(a[k]-a[i])<=kk) then begin
    mark[i]:=true;
    dfs(i,sum+1);
    mark[i]:=false;
    end;
end;
begin
readln(n,kk);
for i:=1 to n do readln(a[i]);
fillchar(mark,sizeof(mark),false);
ans:=0;
for i:=1 to n do begin
 first:=i;
 mark[i]:=true;
 dfs(i,1);
 mark[i]:=false;
end;
writeln(ans div n);
end.

posted on 2012-10-17 21:16  馒头~blue  阅读(181)  评论(0)    收藏  举报

导航