D - Distinct Trio Editorial by toam


\(A_i, A_j, A_k\) が全て異なることは,\(A_i, A_j, A_k\) の種類数が \(2\) または \(1\) ではないことと同値です.したがって,\(i,j,k\) すべての選び方 \({}_N\mathrm{C}_3\) 通りから種類数が \(2\) または \(1\) となるようなものを除けばよいです.\(A_y=x\) となる \(y\) の個数を \(\mathrm{cnt}_x\) とします.

(1) 種類数が \(2\) の場合

\(A_i,A_j,A_k\) のうち \(2\) 回登場するものを \(x\) とすると,\(A_y=x\) となるような異なる \(2\) つの \(y\) の選び方が \({}_{\mathrm{cnt}_x}\mathrm{C}_2\) 通り,残りの \(x\) 以外の数の選び方が \((N-\mathrm{cnt}_{x})\) 通りです.

(2) 種類数が \(1\) の場合

\(A_i=A_j=A_k=x\) とすると,\(A_y=x\) となるような異なる \(3\) つの \(y\) の選び方は \({}_{\mathrm{cnt}_x}\mathrm{C}_3\) 通りです.

よって,求める答えは \({}_N\mathrm{C}_3-\displaystyle \sum_{x=1}^{\max{A}} ({}_{\mathrm{cnt}_x}\mathrm{C}_2\times(N-\mathrm{cnt}_{x})+{}_{\mathrm{cnt}_x}\mathrm{C}_3)\) です.

実装例 (pypy3)

posted:
last update: