はまやんはまやんはまやん

hamayanhamayan's blog

LED [yukicoder No.523]

http://yukicoder.me/problems/no/523

解説

http://yukicoder.me/submissions/176856
この問題は同じものを含む順列であると考えることができる。
そのため、N個のLEDがあれば、(2N)!から2!をN回割ればいい。
自分の解法では、(2N)!を計算する時に1*2*3*4*...*(i*2-1)*i*...(2N-1)*(2N)と考え、偶数番目は予め2で割って掛けることで、2!でN回わったことにした

val mod = 1000000007L
fun main(args: Array<String>) {
    var N = sc.nextInt()

    var ans = 1L
    for(i in 1..N) {
        var a = (i * 2 - 1).toLong()
        var b = i.toLong()
        ans = (((ans.toLong() * a) % mod) * b) % mod
    }
    println(ans)
}