結果

問題 No.129 お年玉(2)
ユーザー fmhr
提出日時 2015-04-23 08:57:16
言語 Go
(1.23.4)
結果
AC  
実行時間 718 ms / 5,000 ms
コード長 1,158 bytes
コンパイル時間 13,348 ms
コンパイル使用メモリ 216,692 KB
実行使用メモリ 392,960 KB
最終ジャッジ日時 2024-11-27 23:46:15
合計ジャッジ時間 30,980 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 46
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import (
    "fmt"
)


func pascal( n, m , mod int64) int64 {
    n += 1
    w := int32(n)
    var p [10001][10001]int32
    p[0][0] = 1
    var i, j int32
    for i=1; i<w; i++ {
        for j=0; j<w; j++ {
            if j == 0 {
                p[i][j] = 1
            } else {
                p[i][j] = (p[i-1][j-1]+p[i-1][j])%int32(mod)
            }
        }
    }
    return int64(p[w-1][m])
}

func pascal_s( n, m , mod int64) int64 {
    n += 1
    p := make([][]int64, n)
    for q:=0; q<int(n); q++ {
        p[q] = make([]int64, int(n))
    }

    p[0][0] = 1
    var i, j int64
    for i=1; i<n; i++ {
        for j=0; j<n; j++ {
            if j == 0 {
                p[i][j] = 1
            } else {
                p[i][j] = (p[i-1][j-1]+p[i-1][j])%mod
            }
        }
    }
    return p[n-1][m]
}

func main() {
    var mod int64
    mod = 1000000000
    var N, M int64
    fmt.Scan(&N)
    fmt.Scan(&M)
    var a, b, c int64
    a = N/1000/M
    b = N - (a * M) * 1000
    c = b/1000
    N /= 1000
    N %= M
//    fmt.Println(M, c)
    fmt.Println(pascal(M, c, mod)%mod)
//    fmt.Println(pascal_s(M, c, mod)%mod)
}
0