fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define maxn (ll) (1e7+5)
  5. #define mod (ll)(1e9+7)
  6. ll f[maxn],sum,x,m;
  7. ll i,n;
  8. ll po(ll a,ll n){
  9. ll res=a,ans=1;
  10. while(n){
  11. if(n%2)
  12. ans=ans*res%mod;
  13. res=res*res%mod;
  14. n/=2;
  15. }
  16. return ans;
  17. }
  18. ll C(ll n,ll k){
  19. return f[n]*po(f[n-k],mod-2)%mod*po(f[k],mod-2)%mod;
  20. }
  21. int main(){
  22. f[0]=1;
  23. for(i=1;i<maxn;i++) f[i]=f[i-1]*i%mod;
  24. cin>>m>>n;
  25. for(i=0;i<n;i++){
  26. cin>>x;
  27. sum+=x;
  28. }
  29. if(m<sum) {cout<<0;return 0;}
  30. ll tmp,j;
  31. tmp=po(f[n-1],mod-2);
  32. for(j=m-sum+1;j<=m-sum+n-1;j++) tmp=(tmp*j)%mod;
  33. cout<<tmp;
  34. return 0;
  35. }
  36.  
Success #stdin #stdout 0.06s 81592KB
stdin
5 3
1 1 2 
stdout
3