結果
問題 | No.955 ax^2+bx+c=0 |
ユーザー |
![]() |
提出日時 | 2019-12-18 00:47:54 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,802 bytes |
コンパイル時間 | 1,875 ms |
コンパイル使用メモリ | 83,636 KB |
実行使用メモリ | 51,484 KB |
最終ジャッジ日時 | 2024-07-07 00:01:23 |
合計ジャッジ時間 | 10,122 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 96 WA * 12 RE * 14 |
ソースコード
import java.io.BufferedReader; import java.io.InputStreamReader; import java.math.BigDecimal; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] sa = br.readLine().split(" "); long a = Integer.parseInt(sa[0]); long b = Integer.parseInt(sa[1]); long c = Integer.parseInt(sa[2]); br.close(); if (a == 0) { if (b == 0) { if (c == 0) { System.out.println(-1); } else { System.out.println(0); } } else { System.out.println(1); System.out.println((double) -c / b); } } else if (b * b == 4 * a * c) { System.out.println(1); System.out.println((double) -b / 2 / a); } else if (b * b > 4 * a * c) { long d = b * b - 4 * a * c; BigDecimal bd = BigDecimal.valueOf(d); BigDecimal sq = BigDecimal.valueOf((long) Math.sqrt(d)); StringBuilder sb = new StringBuilder("0."); for (int i = 0; i < 20; i++) { for (int j = 0; j < 10; j++) { BigDecimal v = new BigDecimal(sb.toString() + "1"); BigDecimal tmp = sq.add(v); tmp = tmp.multiply(tmp); if (tmp.compareTo(bd) > 0) { break; } sq = sq.add(v); } sb.append("0"); } System.out.println(2); BigDecimal ba = BigDecimal.valueOf(a); BigDecimal two = BigDecimal.valueOf(2); BigDecimal mb = BigDecimal.valueOf(b).negate(); BigDecimal ans1 = mb.subtract(sq).divide(two).divide(ba); BigDecimal ans2 = mb.add(sq).divide(two).divide(ba); if (ans1.compareTo(ans2) < 0) { System.out.println(ans1.toPlainString()); System.out.println(ans2.toPlainString()); } else { System.out.println(ans2.toPlainString()); System.out.println(ans1.toPlainString()); } } else { System.out.println(0); } } }