結果
| 問題 | No.3391 Line up Dominoes |
| コンテスト | |
| ユーザー |
biotea
|
| 提出日時 | 2025-12-02 23:28:27 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 971 bytes |
| 記録 | |
| コンパイル時間 | 2,114 ms |
| コンパイル使用メモリ | 203,748 KB |
| 実行使用メモリ | 16,208 KB |
| 最終ジャッジ日時 | 2025-12-02 23:28:34 |
| 合計ジャッジ時間 | 6,951 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 WA * 1 |
| other | TLE * 1 -- * 22 |
ソースコード
// #include <atcoder/all>
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
constexpr ll inf = (1LL << 61);
ll dx[8] = {0, 1, 0, -1, 1, -1, -1, 1};
ll dy[8] = {-1, 0, 1, 0, 1, 1, -1, -1};
#define rep(i, n) for (ll i = 0; i < (ll)(n); ++i)
#define REP(i, init, n) for (ll i = (ll)init; i < (ll)(n); ++i)
ll M = 998244353;
ll a[10000];
ll dp[10000][2];
ll sum[10101];
int main() {
ios::sync_with_stdio(false);
std::cin.tie(nullptr);
ll n, m, k;
cin >> n >> m >> k;
rep(i, n) cin >> a[i];
sort(a, a + n);
ll cur = 0;
rep(i, n) dp[i][cur] = 1;
rep(i, n) sum[i + 1] = (sum[i] + dp[i][cur]) % M;
map<ll, ll> L, R;
rep(i, n) {
L[i] = lower_bound(a, a + n, a[i] - k) - a;
R[i] = upper_bound(a, a + n, a[i] + k) - a;
}
rep(i, m - 1) {
rep(j, n) dp[1 - cur][j] = (sum[R[j]] + M - sum[L[j]]) % M;
sum[0] = 0;
rep(j, n) { sum[j + 1] = (sum[j] + dp[1 - cur][j]) % M; }
cur = 1 - cur;
}
cout << sum[n] << endl;
}
biotea