제출 #1289395

#제출 시각아이디문제언어결과실행 시간메모리
1289395packmaniA Huge Tower (CEOI10_tower)C++20
90 / 100
1097 ms5244 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
const ll N=1e6+5;
const ll mod=1e9+9;
ll n,d,p,tmp;
ll arr[N];
ll ans;
int32_t main()
{
	cin >> n >> d;
	for(int i=0;i<n;i++)
	{
		cin >> arr[i];
	}
	//a,b,c -> a<=b+d, b<=c+d
	//sort asc -> we want to put b, a<=b+d always true (assume d is positive) -> check only b<=c+d
	//a+d<=b, b+d<=c
	sort(arr,arr+n);
	ans=1;
	for(int i=0;i<n;i++)
	{
		p=0;
		tmp = ans;
		for(int j=0;j<i;j++)
			if(arr[i]<=arr[j]+d) p++;
		ans = tmp*p;
		ans %= mod;
		ans += tmp;
		ans %= mod;
	}
	cout << ans;
}
#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...