Submission #383426

# Submission time Handle Problem Language Result Execution time Memory
383426 2021-03-29T21:56:46 Z ScarletS A Huge Tower (CEOI10_tower) C++17
100 / 100
162 ms 13676 KB
#include <bits/stdc++.h>
#define ll long long
using namespace std;

const int N = 1e6+7, mod = 1e9+9;
ll dp[N];

int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n,d,l,r,m;
    cin>>n>>d;
    int a[n];
    for (int i=0;i<n;++i)
        cin>>a[i];
    sort(a,a+n);
    dp[0]=1;
    for (int i=1;i<n;++i)
    {
        if (a[i-1]+d<a[i])
        {
            dp[i]=dp[i-1];
            continue;
        }
        l=0;r=n-1;
        while (l<r)
        {
            m=l+(r-l)/2;
            if (a[m]+d<a[i])
                l=m+1;
            else
                r=m;
        }
        dp[i]=dp[i-1]*(i-l+1);
        dp[i]%=mod;
    }
    cout<<dp[n-1];
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 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 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 2 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 14 ms 1388 KB Output is correct
2 Correct 15 ms 1388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 66 ms 5740 KB Output is correct
2 Correct 58 ms 5740 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 129 ms 13676 KB Output is correct
2 Correct 162 ms 13036 KB Output is correct