from math import sqrt
a, b, c, d = map(float, input().split())
D = b**2 - 4*a*(c-d)
if D < 0:
print('NO')
else:
x1 = (-b + sqrt(D))/(2*a)
x2 = (-b - sqrt(D))/(2*a)
if x1 == x2:
print(x1)
else:
print(int(min(x1, x2)), int(max(x1, x2)))
from math import sqrt
a, b, c, d = map(float, input().split())
if a == 0:
if b == 0:
print('NO' if c != d else 'INF')
else:
x = (d - c) / b
print(f'{x:.5f}')
else:
D = b**2 - 4*a*(c-d)
if D < 0:
print('NO')
else:
x1 = (-b + sqrt(D)) / (2*a)
x2 = (-b - sqrt(D)) / (2*a)
if abs(x1 - x2) < 1e-9: # Проверка на равенство с учетом погрешности
print(f'{x1:.5f}')
else:
print(f'{min(x1, x2):.5f} {max(x1, x2):.5f}')
from math import sqrt
def solve_quadratic(a, b, delta):
D = b**2 - 4*a*delta
roots = []
if D > 0:
sqrt_D = sqrt(D)
roots = [(-b + sqrt_D) / (2 * a), (-b - sqrt_D) / (2 * a)]
elif D == 0:
roots = [-b / (2 * a)]
return [int(x) for x in roots if x.is_integer()]
def solve_linear(b, delta):
if b == 0:
return ['INF'] if delta == 0 else []
x = -delta / b
return [int(x)] if x.is_integer() else []
def main():
a, b, c, d = map(float, input().split())
delta = c - d
result = (
solve_linear(b, delta) if a == 0 else
solve_quadratic(a, b, delta)
)
print('NO' if not result else ' '.join(map(str, result)))
if __name__ == "__main__":
main()
from math import sqrt
a, b, c, d = map(float, input().split())
D = b**2 - 4*a*(c-d)
if D < 0:
print('NO')
else:
x1 = (-b + sqrt(D))/(2*a)
x2 = (-b - sqrt(D))/(2*a)
x1 = int(x1)
x2 = int(x2)
if x1 == x2:
print(x1)
else:
print(min(x1, x2), max(x1, x2))
```
Теперь ваш код должен работать правильно во всех случаях. Надеюсь, это поможет вам! Если у вас есть еще вопросы или нужна дополнительная помощь, не стесняйтесь обращаться.