#include <bits/stdc++.h>
using namespace std;
const int MOD=pow(10,9)+7;
int ans=0;
int n,d;
int a[1009],ra[1009],v[1009];
void dfs(int id,int cd){
  if(id==cd+1)
  {
    for(int i=1;i<id-1;i++)
    {
        if(ra[i+1]>=ra[i]-d) return ;
    }
    ans++;
    ans=ans%MOD;
    return;
  }
  for(int i=1;i<=n;i++){
    if(v[a[i]]==0)
    {
      v[a[i]]=1;
      ra[id]=a[i];
      dfs(id+1,cd);
      v[a[i]]=0;
    }
  }
}
int main(){
  cin>>n>>d;
  for(int i=1;i<=n;i++) cin>>a[i];
  ans=ans+n;
  for(int i=2;i<=n;i++)
  {
      dfs(1,i);
      memset(ra,0,sizeof(ra));
  }
  cout<<ans;
  return 0;
}

0 条评论

目前还没有评论...