Meme Problem (Codeforces 1076C)
Tags: Math, binary search

Try guessing the statement from this picture:   You are given a non-negative integer $$$d$$$. You have to find two non-negative real numbers $$$a$$$ and $$$b$$$ such that $$$a + b = d$$$ and $$$a \cdot b = d$$$.

Input: The first line contains $$$t$$$ ($$$1 \le t \le 10^3$$$) — the number of test cases.Each test case contains one integer $$$d$$$ $$$(0 \le d \le 10^3)$$$.

Output: For each test print one line.If there is an answer for the $$$i$$$-th test, print "Y", and then the numbers $$$a$$$ and $$$b$$$.If there is no answer for the $$$i$$$-th test, print "N".Your answer will be considered correct if $$$|(a + b) - a \cdot b| \le 10^{-6}$$$ and $$$|(a + b) - d| \le 10^{-6}$$$.


Sample Inputs:
7
69
0
1
4
5
999
1000

Sample Outputs:
Y 67.985071301 1.014928699
Y 0.000000000 0.000000000
N
Y 2.000000000 2.000000000
Y 3.618033989 1.381966011
Y 997.998996990 1.001003010
Y 998.998997995 1.001002005

Solution (Python):
from math import *
for _ in range(int(input().strip())):
    n = int(input())
    (a, b, c) = (1, -n, n)
    D = b * b - 4 * a * c
    if D < 0:
        print('N')
        continue
    x = (-b - sqrt(D)) / (2 * a)
    print('Y', x, n - x)

Solution (Python):
import math
t = int(input())
for _ in range(t):
    d = int(input())
    if d == 0:
        print('Y', 0, 0)
    elif d < 4:
        print('N')
    else:
        a = (d + math.sqrt(d * d - 4 * d)) / 2
        b = d - a
        print('Y', a, b)

Solution (Python):
for _ in [0] * int(input()):
    d = int(input())
    D = d * (d - 4)
    if D < 0:
        print('N')
    else:
        x = (d - D ** 0.5) / 2
        print('Y', x, d - x)