結果
問題 | No.793 うし数列 2 |
ユーザー |
|
提出日時 | 2021-02-27 06:57:17 |
言語 | Kuin (KuinC++ v.2021.9.17) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,186 bytes |
コンパイル時間 | 2,135 ms |
コンパイル使用メモリ | 147,752 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-16 11:40:36 |
合計ジャッジ時間 | 3,030 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 21 |
ソースコード
func main()var n: int :: cui@inputInt()var ans: modInt :: (#modInt).init(10, 1000000007)do ans.pow(n)do ans.mul(4)do ans.sub(1)do ans.div(3)do cui@print("\{ans}\n"); val, mod, a, b: 0 to 2 ^ 31.class modInt()var val: intvar mod: int+func init(val: int, mod: int): modIntdo me.val :: val % moddo me.mod :: modret meend func+func add(a: int): modIntdo me.val :+ aif(me.val > me.mod)do me.val :- me.modend ifret meend func+func sub(a: int): modIntif(me.val < a)do me.val :+ me.modend ifdo me.val :- aret meend func+func mul(a: int): modIntdo me.val :: me.val * a % me.modret meend func+func div(a: int): modIntdo me.val :: me.val * me.modPow(a, me.mod - 2) % me.modret meend func+func pow(a: int): modIntdo me.val :: me.modPow(me.val, a)ret meend func+*func toStr(): []charret "\{me.val}"end funcfunc modPow(a: int, b: int): intif(b = 0)ret 1end ifvar res: int :: me.modPow(a, b / 2)do res :: res * res % me.modif(b % 2 = 1)do res :: res * a % me.modend ifret resend funcend classend func