TopCoder SRM 466 Div1 Medium

問題

N行5列に1〜5Nまでの数字がランダムに書かれたくじがある。


当選番号が、5つ1〜5Nの中から相異なるように選ばれる。
くじに、当選番号が3つ以上書かれた行があればくじは当たりである。


くじが当たりである確率を求めよ。

制約条件

N≦100

方針

一行に3つある場合、一行に4つある場合、一行に5つある場合の確率を求めて足すだけ。


何でこれ500なの。

ソースコード

double C(int n,int k){
	double ret=1;
	rep(i,k)ret*=n-i, ret/=i+1;
	return ret;
}

class LotteryPyaterochka {
	public:
	double chanceToWin(int N) 
	{
		return (N*C(5,3)*C(5*N-5,2)+N*C(5,4)*5*(N-1)+N)/C(5*N,5);
	}
};