#include #include #include #include #include #include using namespace std; using namespace atcoder; using ll = long long; using mint = modint998244353; using vi = vector; using vvi = vector; using vvvi = vector; using vll = vector; using vvll = vector; using vvvll = vector; using vmi = vector; using vvmi = vector; using vvvmi = vector; #define all(a) (a).begin(), (a).end() #define rep2(i, m, n) for (int i = (m); i < (n); ++i) #define rep(i, n) rep2(i, 0, n) #define drep2(i, m, n) for (int i = (m)-1; i >= (n); --i) #define drep(i, n) drep2(i, n, 0) void solve(){ } ll p(ll a, ll n){ ll w = 1; rep(i, n)w *= a; return w; } int main(){ int n; ll a, b; cin >> n >> a >> b; vll kaijo(12, 1); rep2(i, 2, 12)kaijo[i] = kaijo[i-1]*(ll)i; vll k(n+1); rep(i, n+1)cin >> k[i]; vll s(n+1); rep(i, n+1){ ll c = p(b, i+1) - p(a, i+1); s[i] = kaijo[n+1]*k[i]*c / (ll)(i+1); } ll t = 0; rep(i, n+1)t += s[i]; if(t >= 0){ cout << t/kaijo[n+1] << endl; }else{ if(-t % kaijo[n+1] == 0){ cout << t/kaijo[n+1] << endl; }else{ cout << t/kaijo[n+1] << endl; } } return 0; }