結果
| 問題 |
No.955 ax^2+bx+c=0
|
| コンテスト | |
| ユーザー |
agataYMGT
|
| 提出日時 | 2019-12-28 11:05:32 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,552 bytes |
| コンパイル時間 | 3,631 ms |
| コンパイル使用メモリ | 78,848 KB |
| 実行使用メモリ | 56,372 KB |
| 最終ジャッジ日時 | 2024-10-11 07:04:59 |
| 合計ジャッジ時間 | 24,052 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 82 WA * 40 |
ソースコード
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Scanner;
public class No955 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if(a == 0) {
if(b == 0) {
if(c == 0) {
System.out.println(-1);
return;
} else {
System.out.println(0);
return;
}
} else {
System.out.println(1);
System.out.println(-c);
return;
}
}
BigDecimal A = new BigDecimal(a);
BigDecimal B = new BigDecimal(b);
BigDecimal C = new BigDecimal(c);
BigDecimal D = new BigDecimal(b);
D = D.multiply(B).subtract(new BigDecimal(4).multiply(A).multiply(C));
if(D.compareTo(BigDecimal.ZERO) == 1) {
System.out.println(2);
System.out.println(BigDecimal.ZERO.subtract(B).subtract(sqrt(D)).divide(new BigDecimal(2).multiply(A), 20, RoundingMode.HALF_EVEN));
System.out.println(BigDecimal.ZERO.subtract(B).add(sqrt(D)).divide(new BigDecimal(2).multiply(A), 20, RoundingMode.HALF_EVEN));
} else if(D.compareTo(BigDecimal.ZERO) == 0) {
System.out.println(1);
System.out.println(BigDecimal.ZERO.subtract(B).divide(new BigDecimal(2).multiply(A), 20, RoundingMode.HALF_EVEN));
} else {
System.out.println(0);
}
}
public static BigDecimal sqrt(BigDecimal a) {
BigDecimal a2 = a.add(BigDecimal.ZERO);
for(int i = 0; i < 100; i++) {
a2 = a2.subtract(a2.pow(2).subtract(a).divide(a2.multiply(new BigDecimal(2)), 20, RoundingMode.HALF_EVEN));
}
return a2;
}
}
agataYMGT