Submission #1274396

#TimeUsernameProblemLanguageResultExecution timeMemory
1274396LeDaiKingA Huge Tower (CEOI10_tower)C++20
30 / 100
70 ms2772 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define pb push_back
#define ALL(n) n.begin(), n.end()
#define mask(n) (1ll << (n))
#define ck(n, k) (((n) >> (k))&1)
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const ll MOD = (int)1e9 + 7;
int a[1000005];

void solution() {
    int n, d;
    cin >> n >> d;
    for (int i = 1; i <= n; i++) cin >> a[i];
    sort(a + 1, a + 1 + n);
    ll ans = 1;
    int l = 1, r = 1;
    for (int i = 1; i <= n; i++) {
        while(a[l] + d < a[i]) l++;
        while(r < i && a[r + 1] + d >= a[i]) r++;
        // cout << l << " " << r << endl;
        ll num = r - l + 1;
        ans = ans * num % MOD;
    }
    cout << ans;
}

int main()
{  
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    int testcase = 1;
    // cin >> testcase;
    while (testcase--)
    {
        solution();
    }
    return 0;
}
#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...