Submission #336771

# Submission time Handle Problem Language Result Execution time Memory
336771 2020-12-16T18:50:19 Z Stormersyle A Huge Tower (CEOI10_tower) C++14
100 / 100
333 ms 16288 KB
#include <iostream>
#include <bits/stdc++.h> 
#include <array>
#include <fstream>
#include <string>
#include <algorithm>
#include <cmath>
#include <sstream>
using namespace std;
using ll=long long;

int main() {
  int N;
  ll D, w;
  // ifstream cin("file.in");
  cin>>N>>D;
  vector<ll> a;
  for (int i=0; i<N; i++) cin>>w, a.push_back(w);
  sort(a.begin(), a.end(), greater<ll>());
  ll c[N+1];
  auto it1=a.begin();
  for (int x=N; x>=2; x--){
    auto it=upper_bound(a.begin(), a.end(), a[N-x]-D, greater<ll>());
    c[x]=it-it1;
    it1++;
    // cout<<it-a.begin()<<" "<<it1-a.begin()<<"\n";
    // cout<<c[x];
  }
  ll T=1, z=1000000009;
  for (int i=2; i<=N; i++) T= (T*c[i])%z;
  cout<<T;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 668 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 32 ms 1736 KB Output is correct
2 Correct 27 ms 1940 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 191 ms 6796 KB Output is correct
2 Correct 135 ms 6920 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 331 ms 16288 KB Output is correct
2 Correct 333 ms 15688 KB Output is correct