結果
問題 | No.955 ax^2+bx+c=0 |
ユーザー |
![]() |
提出日時 | 2020-02-18 00:49:03 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,174 bytes |
コンパイル時間 | 197 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 80,000 KB |
最終ジャッジ日時 | 2024-10-06 15:19:35 |
合計ジャッジ時間 | 5,750 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 WA * 10 TLE * 1 -- * 90 |
ソースコード
def main(): import sys from math import sqrt input = sys.stdin.readline a, b, c = map(int, input().split()) if a == b == c == 0: print(-1) exit() if a == b == 0: print(0) exit() if a == 0: print(0) print(-c / b) exit() D = b**2 - 4*a*c if D < 0: print(0) elif D == 0: print(1) print(-b/(2*a)) else: print(2) eps = 10**-11 if a < 0: a *= -1 b *= -1 c *= -1 L = -b / (2*a) ok = 10**10 ng = L - eps mid = (ok+ng) / 2 while ok - ng > eps: if a * mid**2 + b*mid+c > 0: ok = mid else: ng = mid mid = (ok+ng)/2 x_plus = ok ok = -10 ** 10 ng = L + eps mid = (ok + ng) / 2 while ng - ok > eps: if a * mid ** 2 + b * mid + c > 0: ok = mid else: ng = mid mid = (ok + ng) / 2 x_minus = ok print(x_minus) print(x_plus) if __name__ == '__main__': main()