You are viewing a single comment's thread. Return to all comments →
def nArModp(n,r,p): res = 1 for i in range(r+1,n+1): res= (res*i)%p return res def nTorModp(n,r,p): if (n>p) or (r> p-1): return nTorModp(n%p,r%(p-1),p) if r==0: return 1 if r%2: return (n*nTorModp(n,r-1,p))%p else: return (nTorModp(n,r//2,p)**2)%p def nCmultrModp(arr,p): N=sum(arr) arr=sorted(arr) res =1 rold=0 lr = len(arr) #denominator for i,r in enumerate(arr[:lr-1]): res = res * (nTorModp(nArModp(r,rold,p),lr-1-i,p)) % p rold=r #numerator rNum = nArModp(N,arr[lr-1],p) return (nTorModp(res,p-2,p)*rNum)%p def solve(s): counts = list(Counter(s).values()) counts = [c//2 for c in counts if c > 1] return nCmultrModp(counts,10**9+7)
Seems like cookies are disabled on this browser, please enable them to open this website
Game Of Thrones - II
You are viewing a single comment's thread. Return to all comments →