結果
| 問題 |
No.673 カブトムシ
|
| コンテスト | |
| ユーザー |
6soukiti29
|
| 提出日時 | 2018-04-14 00:16:54 |
| 言語 | Nim (2.2.0) |
| 結果 |
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
6soukiti29