Submission #412792

#TimeUsernameProblemLanguageResultExecution timeMemory
412792rqiA Huge Tower (CEOI10_tower)C++14
100 / 100
141 ms8684 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pi; #define mp make_pair #define f first #define s second #define pb push_back #define all(x) begin(x), end(x) const int MOD = 1e9+9; #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; template<class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; struct mi{ ll v; mi(){ v = 0; } mi(ll _v){ v = _v % MOD; if(v < 0) v+=MOD; } }; mi operator*(mi a, mi b){ a.v = (a.v*b.v) % MOD; return a; } mi& operator*=(mi& a, mi b){ a = a*b; return a; } const int mx = 5000005; int build[mx]; int main(){ cin.tie(0)->sync_with_stdio(0); int N, D; cin >> N >> D; for(int i = 1; i <= N; i++){ cin >> build[i]; } sort(build+1, build+1+N); int cur_j = 1; mi ans = mi(1); for(int i = 1; i <= N; i++){ while(true){ if(build[cur_j]+D < build[i]){ cur_j++; } else{ break; } } ans*=mi(i-cur_j+1); } cout << ans.v << "\n"; }
#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...