Submission
Status:
Compilation Error
Subtask/Task Score:
Score: 0
User: C12
Problemset: Chocolate
Language: cpp
Time: 0.000 second
Submitted On: 2026-03-16 19:52:09
#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9+7;
#define ll long long
#define pii pair<ll,int>
// ll dp[5001][5001];
ll calibrate(ll a){
while(a < 0) a += mod;
while(a >= mod) a -= mod;
return a;
}
ll pow_ll(ll a,ll p){
ll res = 1;
while(p){
if(p & 1) res *= a;
a *= a;
p >>= 1;
}
return res;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n,m,c;
cin >> n >> m >> c;
vector<int>vec(n);
vector<vector<ll>> dp(m, vector<ll>(n,0));
for(int i = 0;i < n;i++) cin >> vec[i];
vector<vector<ll>>pre(n, vector<ll>(n,0));
vector<ll>mul(n+1);
for(int i = 0;i <= n;i++){
mul[i] = pow_ll(i,c);
}
// return 0;
for(int i = 0;i < n;i++){
pre[i][i] = vec[i] * mul[0];
for(int j = i-1;j >= 0;j--){
pre[i][j] = pre[i-1][j] + (vec[i] * mul[i-j]);
}
}
// for(int i = 0;i < n;i++){
// for(int j = 0;j < n;j++){
// cout << pre[i][j] << '\t';
// }
// cout << '\n';
// }
int lo;
int hi;
cin >> lo >> hi;
vector<vector<ll>> dp(m, vector<ll>(n,0));
int i = 0;
while(i < n && pre[i][0] < lo){
i++;
}
// cout << i << '\n';
while(i < n && pre[i][0] <= hi){
dp[0][i] = 1;
i++;
}
for(int k = 1;k < m;k++){
for(int i = 1;i < n;i++){
for(int j = i;j < n;j++){
if(pre[j][i] >= lo && pre[j][i] <= hi){
dp[k][j] += dp[k-1][i-1];
dp[k][j] = calibrate(dp[k][j]);
}
}
}
}
// for(int k = 0;k < m;k++){
// for(int i = 0;i < n;i++){
// cout << dp[k][i] << '\t';
// }
// cout << '\n';
// }
cout << dp[m-1][n-1];
return 0;
}