結果
問題 |
No.673 カブトムシ
|
ユーザー |
![]() |
提出日時 | 2019-05-02 14:29:36 |
言語 | C (gcc 13.3.0) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 836 bytes |
コンパイル時間 | 808 ms |
コンパイル使用メモリ | 29,440 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-01 23:21:51 |
合計ジャッジ時間 | 1,679 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 12 WA * 2 |
ソースコード
// yukicoder: No.673 カブトムシ // 2019.5.2 bal4u #include <stdio.h> #define M 1000000007 long long extended_gcd(long long a, long long b, long long *x, long long *y) { long long d; if (b == 0) { *x = 1; *y = 0; return a; } d = extended_gcd(b, a % b, y, x); *y -= a / b * (*x); return d; } int inverse(long long a) { long long x, y; extended_gcd(a, (long long)M, &x, &y); return (int)((x + M) % M); } int bigPow(long long x, long long p) { long long r = 1; while (p) { if (p & 1) r = r * x % M; x = x * x % M; p >>= 1; } return (int)r; } int main() { long long B, C, D, ans; scanf("%lld%lld%lld", &B, &C, &D); if (C == 1) ans = (B % M) * (D % M); else { ans = ((B % M) * (C % M)) % M; ans = (ans * ((M+bigPow(C % M, D)-1) % M)) % M * inverse(C-1); } printf("%d\n", ans % M); return 0; }