显示代码纯文本
#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;
ifstream fin("mengbi.in");
ofstream fout("mengbi.out");
inline int MAIN(){
ios::sync_with_stdio(false);
fin>>n>>m;
for(int i=1;i<=n;i++)fin>>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)))&&abs(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];
fout<<ans;
return 0;
}
int haha=MAIN();
int main(){;}