結果
問題 | No.673 カブトムシ |
ユーザー | 6soukiti29 |
提出日時 | 2018-04-14 00:16:54 |
言語 | Nim (2.0.2) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 961 bytes |
コンパイル時間 | 823 ms |
コンパイル使用メモリ | 66,300 KB |
最終ジャッジ日時 | 2024-06-30 05:55:30 |
合計ジャッジ時間 | 1,215 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
/home/judge/data/code/Main.nim(5, 33) Error: type mismatch: got 'seq[BiggestInt]' for 'map(split(readLine(stdin), {' ', '\t', '\v', '\r', '\n', '\f'}, -1), parseBiggestInt)' but expected 'tuple'
ソースコード
import sequtils,strutils,math var B,C,D,ans,p : int64 M : int64 = 1_000_000_007 (B, C, D) = stdin.readline.split.map(parseBiggestInt) if C == 1: echo(((B mod M) * (D mod M)) mod M) quit() proc powInt(n : int64, m : int64, k = 1_000_000_007):int64 = if m == 0: return 1 elif m == 1: return (n mod k) var n2 = n mod k if (m mod 2) == 0: return powInt((n2 * n2) mod k,m div 2, k) mod k else: return (powInt((n2 * n2) mod k,m div 2, k) * n2) mod k proc inv_mod(a : int64):int64 = var b,x,u,q,t : int64 a2 = a b = M x = 1 u = 0 while b > 0: q = a2 div b t = u u = x - q * u x = t t = b b = a2 - q * b a2 = t if x < 0: x += M return x ans = B mod M ans = (ans * (C mod M)) mod M p = powInt(C, D) - 1 if p < 0: p += M ans = (ans * p) mod M ans = (ans * inv_mod(C - 1)) mod M echo ans