結果

問題 No.1127 変形パスカルの三角形
ユーザー tatt61880tatt61880
提出日時 2021-02-28 09:35:33
言語 Kuin
(KuinC++ v.2021.9.17)
結果
AC  
実行時間 9 ms / 1,500 ms
コード長 997 bytes
コンパイル時間 2,149 ms
コンパイル使用メモリ 148,460 KB
実行使用メモリ 6,912 KB
最終ジャッジ日時 2024-09-16 11:40:54
合計ジャッジ時間 3,583 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 6 ms
6,912 KB
testcase_01 AC 9 ms
6,784 KB
testcase_02 AC 8 ms
6,784 KB
testcase_03 AC 8 ms
6,912 KB
testcase_04 AC 6 ms
6,784 KB
testcase_05 AC 7 ms
6,784 KB
testcase_06 AC 9 ms
6,912 KB
testcase_07 AC 7 ms
6,912 KB
testcase_08 AC 7 ms
6,784 KB
testcase_09 AC 9 ms
6,784 KB
testcase_10 AC 9 ms
6,912 KB
testcase_11 AC 9 ms
6,912 KB
testcase_12 AC 9 ms
6,912 KB
testcase_13 AC 8 ms
6,912 KB
testcase_14 AC 8 ms
6,912 KB
testcase_15 AC 7 ms
6,912 KB
testcase_16 AC 8 ms
6,784 KB
testcase_17 AC 6 ms
6,912 KB
testcase_18 AC 8 ms
6,784 KB
testcase_19 AC 9 ms
6,912 KB
testcase_20 AC 9 ms
6,784 KB
testcase_21 AC 8 ms
6,912 KB
testcase_22 AC 7 ms
6,784 KB
testcase_23 AC 9 ms
6,784 KB
testcase_24 AC 7 ms
6,912 KB
testcase_25 AC 7 ms
6,912 KB
testcase_26 AC 9 ms
6,912 KB
testcase_27 AC 9 ms
6,912 KB
testcase_28 AC 9 ms
6,784 KB
testcase_29 AC 7 ms
6,912 KB
testcase_30 AC 6 ms
6,784 KB
testcase_31 AC 9 ms
6,912 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

const mod: int :: 1000000007
const kMax: int :: 200000
var fact: []int
var inv: []int

func main()
	var a: int :: cui@inputInt()
	var b: int :: cui@inputInt()
	do a :% @mod
	do b :% @mod
	var n: int :: cui@inputInt()
	var k: int :: cui@inputInt()
	do k :- 1
	var ans: int :: b * comb(n - 1, k - 1) + a * comb(n - 1, k)
	do ans :% @mod
	do cui@print("\{ans}\n")
	var sum: int :: a ^ 2 + b ^ 2
	do sum :% @mod
	for i(1, n - 1)
		var v: int :: b * comb(n - 1, i - 1) + a * comb(n - 1, i)
		do v :% @mod
		do sum :+ v ^ 2
		do sum :% @mod
	end for
	do cui@print("\{sum}\n")
	
	func comb(n: int, r: int): int
		if(@fact =& null)
			do @fact :: #[@kMax + 1]int
			do @inv :: #[@kMax + 1]int
			do @fact[0] :: 1
			for i(1, @kMax)
				do @fact[i] :: @fact[i - 1] * i % @mod
			end for
			do @inv[@kMax] :: math@modPow(@fact[@kMax], @mod - 2, @mod)
			for i(@kMax, 1, -1)
				do @inv[i - 1] :: @inv[i] * i % @mod
			end for
		end if
		ret @fact[n] * @inv[n - r] % @mod * @inv[r] % @mod
	end func
end func
0