Codeforces Beta Round #53 C. Array
2nCn-n。
小さいnに対して実際に調べて、OEISに訊いた。
理由を考えてみる。n個の数字からn個を選ぶ重複組合せは2n-1Cn通り。選んだ数字を昇順と降順に並べることでbeautiful arrayが得られる。22n-1Cn=2nCn通り。ただし、これは全てが同じ数字の数列を2度数えている。そのような数列はn通り。
Mを法としたときの1/xはxM-2。多倍長整数のまま計算するとTLEだった。
M = 1000000007 n = input() ans = 1 for i in range(1,n+1): ans = ans * (n+i) * pow(i,M-2,M) % M print (ans-n)%M