제출 #877107

#제출 시각아이디문제언어결과실행 시간메모리
877107Youssif_ElkadiMagneti (COCI21_magneti)C++17
0 / 110
0 ms604 KiB
#include <bits/stdc++.h> using namespace std; const long long N = 1e4 + 5, mod = 1e9 + 7; long long fac[N], inv[N]; long long n, l; long long fp(long long base, long long power) { long long ret = 1; while (power) { if (power & 1) ret = (ret * base) % mod; power >>= 1; base = (base * base) % mod; } return ret; } long long ncr(long long nn, long long rr) { return (fac[nn] * (inv[rr] * inv[nn - rr]) % mod) % mod; } int main() { ios_base::sync_with_stdio(0), cin.tie(NULL), cout.tie(NULL); cin >> n >> l; vector<long long> arr(n); for (int i = 0; i < n; i++) cin >> arr[i]; fac[0] = fac[1] = 1; for (long long i = 2; i <= N - 1; i++) fac[i] = (i * fac[i - 1]) % mod; inv[N - 1] = fp(fac[N - 1], mod - 2); for (long long i = N - 2; i >= 0; i--) inv[i] = (inv[i + 1] * (i + 1)) % mod; int boxes = l - (1 + arr[0] * (n - 1)); cout << (ncr(n + boxes, boxes) * fac[n]) % mod << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...