提出 #70800130


ソースコード 拡げる

#include<bits/stdc++.h>

using namespace std;
typedef long long ll;

#define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define mp make_pair
#define pb push_back
#define lp(i,s,f) for(ll i = s; i < ll(f); i++)
#define inF freopen("input.in", "r", stdin);
#define outF freopen("output.in", "w", stdout);
#define endl '\n'
#define MOD 998244353
#define mm(arr) memset(arr, 0, sizeof(arr))
#define F first
#define S second
#define int ll

const int N = 1e6 + 5;
int fact[N], inv[N];

int fastpow(int b, int p){
    if(p == 0){
        return 1;
    }
    if(p == 1){
        return b%MOD;
    }
    int ans = fastpow(b, p / 2);
    ans *= ans;
    ans %= MOD;
    if(p&1){
        ans *= b%MOD;
        ans %= MOD;
    }
    return ans;
}

int nck(int n, int k){
    if(k > n){
        return 0;
    }
    int ans = fact[n];
    ans *= inv[k];
    ans %= MOD;
    ans *= inv[n - k];
    ans %= MOD;
    return ans;
}

void init(){
    fact[0] = 1, inv[0] = 1;
    for(int i = 1; i < N; i++){
        fact[i] = (fact[i - 1] * i)%MOD;
        inv[i] = fastpow(fact[i], MOD - 2);
    }
}

int32_t main(){
    FAST
    int n, d; cin >> n >> d;
    init();
    vector<int> v(n);
    for(int i = 0; i < n; i++){
        cin >> v[i];
    }
    sort(v.begin(), v.end());
    int ans = 1;
    for(int i = 0; i < n; i++){
        int freq = 0;
        int curr = i;
        while(curr < n && v[curr] == v[i]){
            curr++;
            freq++;
        }
        int ind = lower_bound(v.begin(), v.end(), v[i] - d) - v.begin();
        int can = max(0LL, i - ind) + 1;
        ans *= nck(can + freq - 1, freq);
        ans %= MOD;
        i = curr;
        i--;
    }
    cout << ans;
    return 0;
}

提出情報

提出日時
問題 F - Almost Sorted 2
ユーザ Basilhijaz
言語 C++23 (Clang 21.1.0)
得点 500
コード長 1799 Byte
結果 AC
実行時間 297 ms
メモリ 20172 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 3
AC × 37
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 220 ms 18704 KiB
00_sample_01.txt AC 219 ms 18556 KiB
00_sample_02.txt AC 220 ms 18764 KiB
01_test_00.txt AC 269 ms 19596 KiB
01_test_01.txt AC 266 ms 19552 KiB
01_test_02.txt AC 264 ms 19448 KiB
01_test_03.txt AC 282 ms 19916 KiB
01_test_04.txt AC 295 ms 20076 KiB
01_test_05.txt AC 271 ms 19564 KiB
01_test_06.txt AC 287 ms 19948 KiB
01_test_07.txt AC 295 ms 20108 KiB
01_test_08.txt AC 285 ms 19904 KiB
01_test_09.txt AC 284 ms 19964 KiB
01_test_10.txt AC 271 ms 20064 KiB
01_test_11.txt AC 297 ms 20064 KiB
01_test_12.txt AC 278 ms 19952 KiB
01_test_13.txt AC 290 ms 20092 KiB
01_test_14.txt AC 259 ms 20076 KiB
01_test_15.txt AC 258 ms 20080 KiB
01_test_16.txt AC 290 ms 19980 KiB
01_test_17.txt AC 279 ms 20076 KiB
01_test_18.txt AC 225 ms 18704 KiB
01_test_19.txt AC 290 ms 20056 KiB
01_test_20.txt AC 291 ms 19936 KiB
01_test_21.txt AC 291 ms 20032 KiB
01_test_22.txt AC 291 ms 20172 KiB
01_test_23.txt AC 291 ms 20088 KiB
01_test_24.txt AC 290 ms 20080 KiB
01_test_25.txt AC 290 ms 20008 KiB
01_test_26.txt AC 291 ms 20064 KiB
01_test_27.txt AC 291 ms 20076 KiB
01_test_28.txt AC 290 ms 20080 KiB
01_test_29.txt AC 288 ms 20060 KiB
01_test_30.txt AC 289 ms 19980 KiB
01_test_31.txt AC 288 ms 20072 KiB
01_test_32.txt AC 289 ms 20088 KiB
01_test_33.txt AC 295 ms 19980 KiB