Submission #208499

# Submission time Handle Problem Language Result Execution time Memory
208499 2020-03-11T10:56:41 Z amoo_safar A Huge Tower (CEOI10_tower) C++14
100 / 100
185 ms 8288 KB
//khodaya khodet komak kon
#include <bits/stdc++.h>

#define F first
#define S second
#define pb push_back
#define all(x) x.begin(), x.end()
#pragma GCC optimise ("ofast")
#pragma GCC optimise("unroll-loops")

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;

const int N = 1000000 + 10;
const ll MOD = 1000000000 + 9;
const ll INF = 1000000000000000000;
const ll LOG = 25;

int n, D, a[N], ans = 1;

int32_t main(){
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin >> n >> D;
	for (int i = 1; i <= n; i++){
		cin >> a[i];
	}
	sort(a + 1, a + n + 1);
	int cnt = 0;
	for (int i = n; i >= 1; i--){
		int koj = upper_bound(a + 1, a + n + 1, a[i] + D) - a;
		koj --;
		//cout << koj << '\n';
		int ted = koj - (i + 1) + 2;
		ans = (ans * 1ll * (ted))%MOD;
		//cout << ted << '\n';
		//cout << ans << '\n';
		cnt++;
	}
	cout << ans;







	return 0;
}

Compilation message

tower.cpp:8:0: warning: ignoring #pragma GCC optimise [-Wunknown-pragmas]
 #pragma GCC optimise ("ofast")
 
tower.cpp:9:0: warning: ignoring #pragma GCC optimise [-Wunknown-pragmas]
 #pragma GCC optimise("unroll-loops")
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 380 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 380 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 18 ms 504 KB Output is correct
2 Correct 19 ms 1016 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 74 ms 1248 KB Output is correct
2 Correct 69 ms 3704 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 150 ms 2808 KB Output is correct
2 Correct 185 ms 8288 KB Output is correct