Submission #1118723

#TimeUsernameProblemLanguageResultExecution timeMemory
1118723MinbaevA Huge Tower (CEOI10_tower)C++17
10 / 100
1069 ms16172 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>

#pragma GCC target("avx,avx2,fma")
#pragma GCC optimize("Ofast,unroll-loops")

using namespace std;
using namespace __gnu_pbds;

#define pb 		push_back
#define all(x) 	x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define f 		first
#define s 		second
#define int 	long long
#define ll 		long long
#define pii 	pair<int,int>
#define ar 		array
#define mps		make_pair

template<class T>bool umax(T &a,T b){if(a<b){a=b;return true;}return false;}
template<class T>bool umin(T &a,T b){if(b<a){a=b;return true;}return false;}

template<class T> using ste = tree<T, null_type, less_equal<T>,
rb_tree_tag, tree_order_statistics_node_update>;

const int inf = 3e18 + 7;
const int mod = 1e9 + 7;
const int N = 2e5 + 5;
const int md = 998244353;

int binpow(int a, int b, int m){
	if(b == 0)return 1;
	if(b % 2 == 0){
		int c = binpow(a,b/2,m);
		return (c*c)%m;
	}
	return (binpow(a,b-1,m)*a)%m;
}

int divi(int a, int b, int m){
	return (a*(binpow(b,m-2, m)))%m;
}

int n,m,k,q;

void solve(){

	cin >> n >> k;
	vector<pii>v(n);
	for(int i = 0;i<n;i++)cin >> v[i].f;
	for(int i = 0;i<n;i++){
		v[i].s = i;
	}
	sort(all(v));

	int cnt = 0;

	do{
		bool flag = true;
		for(int i = 1;i<n;i++){
			if(v[i].f-v[i-1].f > k){
				flag = false;
				break;
			}
		
		}
		if(flag)cnt += 1;
	}while(next_permutation(all(v)));


	cout << cnt << "\n";


}
/*

*/
 signed main()
{
//	freopen("seq.in", "r", stdin);
//  freopen("seq.out", "w", stdout);
	ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
	int tt=1;//cin>>tt;
	while(tt--)solve();

}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...