#include #include using namespace std; #include using mint = atcoder::modint998244353; int main() { cin.tie(nullptr), ios::sync_with_stdio(false); int N, L, R; cin >> N >> L >> R; vector A(N); for (auto &a : A) cin >> a; vector dp(R + 1, vector(N + 1)); // (sum, last) dp[0][0] = 1; mint ret = 0; for (int s = 0; s < R; s++) { const mint f = accumulate(dp[s].begin(), dp[s].end(), mint(0)); for (int a = 1; a <= N; a++) { for (int n = 1; n <= A[a - 1]; n++) { int t = s + n * a; if (t > R) break; dp[t][a] += f - dp[s][a]; if (t >= L) ret += f - dp[s][a]; } } } cout << ret.val() << '\n'; }