➤  Problem Link : 553A. Kyoya and Colored Balls  
✅ C++ Solution :
 
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
ll m = 1000000007 ;
ll fact[10000001];
ll power(ll a,ll b)
{
	if(b==0)
		return 1;
	ll x=power(a,b/2);
	x=(x*x)%m;
	if(b%2==1)
		x=(x*a)%m;
	return x;
}
ll comb(ll n, ll r)
{
    if(n==0)
        return 1;
    
    	return (fact[n]*power(fact[r]*fact[n-r]%m,m-2))%m;
}
int main()
{
	int k,c;
	cin>>k;
	ll ans=1;
	ll len=0;
	fact[0]=1;
	for(int i=1;i<=1000000;i++)
		fact[i]=(fact[i-1]*i)%m;
	for(int i=1;i<=k;i++)
	{
		cin>>c;
		ans=(ans*comb(len+c-1,c-1))%m;
		len+=c;
	}
	cout<<ans<<"\n";	
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
➤  Problem Link : 553A. Kyoya and Colored Balls  
✅ C++ Solution :
 
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
ll m = 1000000007 ;
ll fact[10000001];
ll power(ll a,ll b)
{
	if(b==0)
		return 1;
	ll x=power(a,b/2);
	x=(x*x)%m;
	if(b%2==1)
		x=(x*a)%m;
	return x;
}
ll comb(ll n, ll r)
{
    if(n==0)
        return 1;
    
    	return (fact[n]*power(fact[r]*fact[n-r]%m,m-2))%m;
}
int main()
{
	int k,c;
	cin>>k;
	ll ans=1;
	ll len=0;
	fact[0]=1;
	for(int i=1;i<=1000000;i++)
		fact[i]=(fact[i-1]*i)%m;
	for(int i=1;i<=k;i++)
	{
		cin>>c;
		ans=(ans*comb(len+c-1,c-1))%m;
		len+=c;
	}
	cout<<ans<<"\n";	
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
