显示代码纯文本
#include<cstdio>
#include<cstring>
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
int n,a[20],m;
long long f[1<<18][20]={{0}},ans=0;
inline int myabs(int x){
if(x<0)return -x;
return x;
}
inline int MAIN(){
freopen("mengbi.in","r",stdin);
freopen("mengbi.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int i=1;i<=n;i++)f[1<<(i-1)][i]=1;
for(int j=0;j^(1<<n);j++){
for(int i=1;i<=n;i++)if(j&(1<<(i-1))){
for(int k=1;k<=n;k++)if(!(j&(1<<(k-1)))&&myabs(a[k]-a[i])>m){
f[j|(1<<(k-1))][k]+=f[j][i];
}
}
}
for(int i=1;i<=n;i++)ans+=f[(1<<n)-1][i];
printf("%lld",ans);
return 0;
}
int haha=MAIN();
int main(){;}