CP Notebook

← all snippets

multinomial

Computes C(k_1 + … + k_n, k_1, k_2, …, k_n) = ((Σ k_i)!)/(k_1!k_2!...k_n!).

5 lines Tested on kattis:lexicography

content/combinatorial/multinomial.h — Mattias de Zalenski, Fredrik Niemelä, Per Austrin, Simon Lindholm, source: Max Bennedich

ll multinomial(vi& v) {
	ll c = 1, m = v.empty() ? 1 : v[0];
	rep(i,1,sz(v)) rep(j,0,v[i]) c = c * ++m / (j+1);
	return c;
}