unittest
{
	assert( [ "2 3 9" ].parse.expand.solve == "No" );
	assert( [ "2 3 10" ].parse.expand.solve == "Yes" );
	
	assert( [ "249999999 250000000 999999998" ].parse.expand.solve == "Yes" );		// 追加ケース
}



import std.conv;
import std.range;
import std.stdio;
import std.typecons;

void main()
{
	stdin.byLineCopy.parse.expand.solve.writeln;
}

auto parse( Range )( Range input )
if( isInputRange!Range && is( ElementType!Range == string ) )
{
	auto abc = input.front.split.to!( long[] );
	return tuple( abc[ 0 ], abc[ 1 ], abc[ 2 ] );
}

auto solve( long a, long b, long c )
{
	// 小数点以下の誤差で死なないように、式変形して整数で計算する
	// √a + √b < √c
	// ( √a + √b ) ^^ 2 < √c ^^ 2
	// ( √a + √b )( √a + √b ) < c
	// a + 2√ab + b < c
	// 2√ab < c - a - b
	// 2√ab ^^ 2 < ( c - a - b ) ^^ 2
	// 4ab < ( c - a - b ) ^^ 2
	return ( 4 * a * b < ( c - a - b ) ^^ 2 ) ? "Yes" : "No";
}
