結果
問題 |
No.403 2^2^2
|
ユーザー |
|
提出日時 | 2016-07-23 13:11:59 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 159 ms / 2,000 ms |
コード長 | 886 bytes |
コンパイル時間 | 3,885 ms |
コンパイル使用メモリ | 79,612 KB |
実行使用メモリ | 42,592 KB |
最終ジャッジ日時 | 2024-11-06 15:35:43 |
合計ジャッジ時間 | 8,333 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
package No400番台; import java.util.Arrays; import java.util.Scanner; public class Main{ public static void main(String[] args) { solver(); } static long MOD = 1_000_000_000 + 7; static void solver() { Scanner sc = new Scanner(System.in); String[] s = sc.next().split("\\^"); long a = Long.parseLong(s[0]); long b = Long.parseLong(s[1]); long c = Long.parseLong(s[2]); if (a % MOD == 0) { System.out.println(0 + " " + 0); return; } System.out.println( pow(a, (b % (MOD - 1)) * (c % (MOD - 1)) % (MOD - 1), MOD) + " " + pow(a, pow(b, c, MOD - 1), MOD)); } static long pow(long a, long n, long mod) { long A = a % mod; long ans = 1; for (; n >= 1; n >>= 1, A *= A, A %= mod) { if ((n & 1) == 1) { ans *= A; ans %= mod; } } return ans; } static void tr(Object... o) { System.out.println(Arrays.deepToString(o)); } }