比赛 普及组2016模拟练习3 评测结果 AAAAAAAAAA
题目名称 圆桌会议 最终得分 100
用户昵称 zhjian 运行时间 0.028 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2016-11-15 19:54:07
显示代码纯文本
#include<bits/stdc++.h>

#define LL unsigned long long
#define BEG freopen("round.in","r",stdin);freopen("round.out","w",stdout);
#define END fclose(stdin);fclose(stdout);

using namespace std;

const int N=200005,M=15;

int n,m;
int h[M],t[M],f[M];
LL sum=0;

void dfs(int u){
	if(u==n){
		if(abs(h[t[u]]-h[1])<=m){
			sum++;
		}
		return ;
	}
	for(int i=1;i<=n;i++){
		if(f[i]==0&&abs(h[t[u]]-h[i])<=m){
			f[i]=1;
			t[u+1]=i;
			dfs(u+1);
			f[i]=0;
		}
	}
}

int main(){
	BEG
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>h[i];
	}
	f[1]=1;
	t[1]=1;
	dfs(1);
	cout<<sum;
	
	END
	return 0;
}