#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll mod = 1e9 + 7;
const ll DIM = 1e5 + 7;
ll a[DIM], fact[DIM], rfact[DIM];
ll C(ll n, ll k) {
return (((fact[n] * rfact[k]) % mod) * rfact[n-k]) % mod;
}
ll binpow (ll a, ll p) {
ll ans = 1;
while (p) {
if (p & 1) {
ans *= a;
ans %= mod;
}
a *= a;
a %= mod;
p >>= 1;
}
return ans;
}
int main(){
ios::sync_with_stdio(false);cin.tie(nullptr); cout.tie(nullptr);
ll n, L;
cin >> n >> L;
ll r;
for (int i=1; i<=n; i++) {
cin >> r;
}
if (n == 1) {
cout << L << endl;
return 0;
}
fact[0] = 1;
for (int i=1; i<=L; i++) {
fact[i] = fact[i-1] * i;
fact[i] %= mod;
}
rfact[0] = 1;
for (int i=1; i<=L; i++) {
rfact[i] = binpow(fact[i], mod-2);
}
cout << (C(L - (n-1)*r - 1 + n, n) * fact[n]) % mod << endl;
}
;
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |