結果
問題 |
No.1275 綺麗な式
|
ユーザー |
![]() |
提出日時 | 2020-10-18 18:13:47 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,741 bytes |
コンパイル時間 | 2,336 ms |
コンパイル使用メモリ | 78,136 KB |
実行使用メモリ | 41,668 KB |
最終ジャッジ日時 | 2024-07-21 07:57:03 |
合計ジャッジ時間 | 11,846 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 26 WA * 34 |
ソースコード
import java.util.*; import java.io.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); PrintWriter ou = new PrintWriter(System.out); int a = Integer.parseInt(sc.next()); int b = Integer.parseInt(sc.next()); long n = Long.parseLong(sc.next()); if(n == 0) ou.println(2); else{ long x = 1; long y = 0; long z = 0; long w = 1; long p = 2 * a; p %= (long)(Math.pow(10 , 9) + 7); long q = b - a * (long)a; q %= Math.pow(10 , 9) + 7; if(q < 0) q += 1000000007; long r = 1; long s = 0; n--; while(n != 0){ if((n & 1) == 1){ long x_tmp, y_tmp, z_tmp, w_tmp; x_tmp = x * p % 1000000007 + y * r % 1000000007; x_tmp %= Math.pow(10 , 9) + 7; y_tmp = x * q % 1000000007 + y * s % 1000000007; y_tmp %= Math.pow(10 , 9) + 7; z_tmp = z * p % 1000000007 + w * r % 1000000007; z_tmp %= Math.pow(10 , 9) + 7; w_tmp = z * q % 1000000007 + w * s % 1000000007; w_tmp %= Math.pow(10 , 9) + 7; x = x_tmp; y = y_tmp; z = z_tmp; w = w_tmp; } long p_tmp, q_tmp, r_tmp, s_tmp; p_tmp = p * p % 1000000007 + q * r % 1000000007; p_tmp %= Math.pow(10 , 9) + 7; q_tmp = p * q % 1000000007 + q * s % 1000000007; q_tmp %= Math.pow(10 , 9) + 7; r_tmp = p * r % 1000000007 + r * s % 1000000007; r_tmp %= Math.pow(10 , 9) + 7; s_tmp = r * q % 1000000007 + s * s % 1000000007; s_tmp %= Math.pow(10 , 9) + 7; p = p_tmp; q = q_tmp; r = r_tmp; s = s_tmp; n >>= 1; } x = 2 * a * x % 1000000007 + 2 * y % 1000000007; x %= Math.pow(10 , 9) + 7; while(x < 0) x += Math.pow(10 , 9) + 7; ou.println(x); } ou.flush(); sc.close(); } }