結果
| 問題 | No.673 カブトムシ |
| コンテスト | |
| ユーザー |
6soukiti29
|
| 提出日時 | 2018-04-14 00:16:54 |
| 言語 | Nim (2.2.6) |
| 結果 |
CE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 961 bytes |
| 記録 | |
| コンパイル時間 | 699 ms |
| コンパイル使用メモリ | 67,400 KB |
| 最終ジャッジ日時 | 2026-03-20 01:15:00 |
| 合計ジャッジ時間 | 996 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_1 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
/home/judge/data/code/Main.nim(5, 37) Error: tuple expected for tuple unpacking, but got 'seq[BiggestInt]'
ソースコード
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