using namespace std;
double NearNumber(int x) //开方后向上相邻整数 {
double i = 1.00;
while (i * i < x)
{
i++;
}
return i;
}
double Newtonroot(int a) //牛顿迭代法 {
double nearnumber = NearNumber(a);
double root, temp;
do
{
temp = nearnumber;//储存旧根
root = (nearnumber * nearnumber + a) / ((double)2.00 * nearnumber); //牛顿迭代
nearnumber = root;
} while (temp - root >= 1e-5 || temp - root <= -1e-5);//旧根与新根比较
return root;
}
int main() {
int a, b, c;
cin >> a >> b >> c;
int der = b * b - 4 * a * c;
if (der >= 0)
{
double derroot = Newtonroot(der);
cout << "YES" << endl
<< ((-b) + derroot) / (2 * a) << " " << endl << ((-b) - derroot) / (2 * a) << endl;
}
else
{
cout << "NO" << endl;
}
return 0;
}