結果
問題 |
No.955 ax^2+bx+c=0
|
ユーザー |
|
提出日時 | 2024-07-28 02:39:24 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,599 bytes |
コンパイル時間 | 248 ms |
コンパイル使用メモリ | 82,688 KB |
実行使用メモリ | 64,128 KB |
最終ジャッジ日時 | 2024-07-28 02:39:32 |
合計ジャッジ時間 | 6,587 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 TLE * 1 -- * 90 |
ソースコード
## https://yukicoder.me/problems/no/955 import math def main(): a, b, c = map(int, input().split()) if a == 0 and b == 0: if c == 0: print(-1) else: print(0) elif a == 0: print(1) print(-c / b) else: if a < 0: a *= -1 b *= -1 c *= -1 d = b ** 2 - 4 * a * c if d > 0: print(2) y = -b / (2 * a) x = (-b - math.sqrt(d)) / (2 * a) def func(x): return a * (x ** 2) + b * x + c y_ = x - (y - x) low = y_ while func(low) < 0.0: low -= (y - x) high = y while high - low > 10 **(-11): mid = (high + low ) /2 if func(mid) >= 0.0: low = mid else: high = mid print(low) y = -b / (2 * a) x = (-b + math.sqrt(d)) / (2 * a) def func(x): return a * x ** 2 + b * x + c y_ = x + (x - y) low = y high = y_ while func(high) < 0.0: low += (y - x) while high - low > 10 **(-11): mid = (high + low ) /2 if func(mid) >= 0.0: high = mid else: low = mid print(high) elif d == 0: print(1) print(-b / (2 * a)) else: print(0) if __name__ == '__main__': main()