結果
問題 |
No.550 夏休みの思い出(1)
|
ユーザー |
|
提出日時 | 2017-07-29 16:44:00 |
言語 | Java (openjdk 23) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,669 bytes |
コンパイル時間 | 2,664 ms |
コンパイル使用メモリ | 82,884 KB |
実行使用メモリ | 145,800 KB |
最終ジャッジ日時 | 2024-10-10 19:21:55 |
合計ジャッジ時間 | 9,342 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | TLE * 1 -- * 54 |
ソースコード
import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) { new Main().run(); } static long time = 0; public void run() { Scanner sc = new Scanner(System.in); long A = sc.nextLong(); long B = sc.nextLong(); long C = sc.nextLong(); BigInteger a = BigInteger.valueOf(A); BigInteger b = BigInteger.valueOf(B); BigInteger c = BigInteger.valueOf(C); BigInteger MOD = BigInteger.valueOf(4_000_0); A %= 4_000_0; B %= 4_000_0; C %= 4_000_0; ArrayList<BigInteger> ans = new ArrayList<>(); for (long i = 0; i < 4_000_0; ++i) { if (f(A, B, C, i, 4_000_0) % 4_000_0 == 0) { for (BigInteger j = MOD.multiply(MOD).negate(); j.compareTo(MOD.multiply(MOD)) < 1; j = j.add(MOD)) { BigInteger v = j.add(BigInteger.valueOf(i)); if (f(a, b, c, v).equals(BigInteger.ZERO)) ans.add(v); } } } Collections.sort(ans); for (int i = 0; i < ans.size(); ++i) { System.out.print(ans.get(i) + (i == ans.size() - 1 ? "\n" : " ")); } } BigInteger f(BigInteger a, BigInteger b, BigInteger c, BigInteger v) { BigInteger ans = new BigInteger("0"); ans = ans.add(v.multiply(v).multiply(v)); ans = ans.add(v.multiply(v).multiply(a)); ans = ans.add(v.multiply(b)); ans = ans.add(c); return ans; } long f(long a, long b, long c, long v, long MOD) { long ans = 0; ans = v * v % MOD * v + a * v % MOD * v; ans %= MOD; ans += v * b; ans += c; ans %= MOD; return ans; } static void tr(Object... objects) { System.out.println(Arrays.deepToString(objects)); } }