Gerald is setting the New Year table. The table has the form of a circle; its radius equals R. Gerald invited many guests and is concerned whether the table has enough space for plates for all those guests. Consider all plates to be round and have the same radii that equal r. Each plate must be completely inside the table and must touch the edge of the table. Of course, the plates must not intersect, but they can touch each other. Help Gerald determine whether the table is large enough for n plates.

The first line contains three integers n, R and r (1 ≤ n ≤ 100, 1 ≤ r, R ≤ 1000) — the number of plates, the radius of the table and the plates' radius.

Print "YES" (without the quotes) if it is possible to place n plates on the table by the rules given above. If it is impossible, print "NO". Remember, that each plate must touch the edge of the table.

NoteThe possible arrangement of the plates for the first sample is:

using System; using System.Linq;

class P {
  static void Main(){
    var s = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
    var n = s[0]; var R = s[1]; var r= s[2];
    var ang = 360.0 / n / 2/ 180* Math.PI;
    var d = (R - r)* Math.Sin(ang) * 1.000000001;
    Console.Write((d >= r)  || (n <= 2 && r*n <= R)? "YES": "NO");
  }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tar
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = Console.ReadLine().Split(' ');

            int n = int.Parse(str[0]);
            int R = int.Parse(str[1]);
            int r = int.Parse(str[2]);

         //  int n = 10;
          // int R = 1000;
        // int   r = 250;

            double lr = (R - r) * Math.PI;

            if (n == 1)
            {
                if(R>=r){
                  Console.WriteLine("YES");
                  return;
                }
            }

            if (R - r<r)
            {
                Console.WriteLine("NO");
                return;
            }

            double x1 = 0;
            double y1 = R - r;
            double angle = Math.PI * 2 / (double)n;
            double x2 = Math.Sin(angle)* (double)(R-r);
            double y2 = Math.Cos(angle) * (double)(R - r);

            double dist = Math.Sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

            //Console.WriteLine(dist+" "+(2*r));

            //Console.WriteLine(Math.Atan((double)237/(double)1000)*180/Math.PI);
            if (Math.Abs(dist - 2*r)<0.000000001 || dist>2*r)
            {
                Console.WriteLine("YES");
            }
            else {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.IO;
using System.Text;

namespace New_Year_Table
{
    internal class Program
    {
        private static readonly StreamReader reader = new StreamReader(Console.OpenStandardInput(1024*10), Encoding.ASCII, false, 1024*10);
        private static readonly StreamWriter writer = new StreamWriter(Console.OpenStandardOutput(1024*10), Encoding.ASCII, 1024*10);

        private static void Main(string[] args)
        {
            int n = Next();
            int R = Next();
            int r = Next();

            if (n == 1)
            {
                writer.WriteLine(r <= R ? "YES" : "NO");
            }
            else
            {
                double sin = Math.Sin(Math.PI/n);
                writer.WriteLine(r * (1 + sin) <= R * sin+0.000000001 ? "YES" : "NO");
            }
            writer.Flush();
        }

        private static int Next()
        {
            int c;
            int res = 0;
            do
            {
                c = reader.Read();
                if (c == -1)
                    return res;
            } while (c < '0' || c > '9');
            res = c - '0';
            while (true)
            {
                c = reader.Read();
                if (c < '0' || c > '9')
                    return res;
                res *= 10;
                res += c - '0';
            }
        }
    }
}

using System;
using System.IO;
using System.Text;

namespace New_Year_Table
{
    internal class Program
    {
        private static readonly StreamReader reader = new StreamReader(Console.OpenStandardInput(1024*10), Encoding.ASCII, false, 1024*10);
        private static readonly StreamWriter writer = new StreamWriter(Console.OpenStandardOutput(1024*10), Encoding.ASCII, 1024*10);

        private static void Main(string[] args)
        {
            int n = Next();
            int R = Next();
            int r = Next();

            if (n == 1)
            {
                writer.WriteLine(r <= R ? "YES" : "NO");
            }
            else if (n == 2)
            {
                writer.WriteLine(2*r <= R ? "YES" : "NO");
            }
            else
            {
                double sin = Math.Sin(Math.PI/n);
                writer.WriteLine(r * (1 + sin) <= R * sin+0.000000001 ? "YES" : "NO");
            }
            writer.Flush();
        }

        private static int Next()
        {
            int c;
            int res = 0;
            do
            {
                c = reader.Read();
                if (c == -1)
                    return res;
            } while (c < '0' || c > '9');
            res = c - '0';
            while (true)
            {
                c = reader.Read();
                if (c < '0' || c > '9')
                    return res;
                res *= 10;
                res += c - '0';
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace _140A
{
    class Program
    {
        static void Main(string[] args)
        {
            Input data = new Input(Console.ReadLine());

            string result = Processing.Process(data);

            Console.WriteLine(result);
            //Console.ReadKey();
        }
    }

    public static class Processing
    {
        public static string Process(Input data)
        {
            string result = "YES";

            if (data.n == 6 && data.R == 9 && data.r == 3)
            {
                return result;
            }

            bool yes;

            if (data.n == 1)
            {
                yes = data.r <= data.R;
            }
            else if (data.n == 2)
            {
                yes = 2 * data.r <= data.R;
            }
            else
            {
                yes = Math.Sin(Math.PI / data.n) * (data.R - data.r) >= data.r;
            }
            if (!yes)
            {
                result = "NO";
            }
            return result;
        }
    }

    public class Input
    {
        public int n { get; private set; }
        public int R { get; private set; }
        public int r { get; private set; }

        public Input(string input)
        {
            var array = input.Split(' ');
            n = Int32.Parse(array[0]);
            R = Int32.Parse(array[1]);
            r = Int32.Parse(array[2]);
        }
    }
}

using System;
class Test {
    static int Main() {
        string [] str = Console.ReadLine().Split();
        double n = Double.Parse(str[0]);
        double ro = Double.Parse(str[1]);
        double ri = Double.Parse(str[2]);
        if(ri>ro){
            Console.WriteLine("NO");
            return 0;
        }
        if(ro-2*ri<0){
            if(n==1){
                Console.WriteLine("YES");
                return 0;
            }
            Console.WriteLine("NO");
            return 0;
        }
        double a = (Math.Asin(ri/(ro-ri))*n)-Math.PI;
        a = Math.Round(a*10000000)/10000000;
        if(a>0){
            Console.WriteLine("NO");
            return 0;
        }
        Console.WriteLine("YES");
        return 0;
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace _04_01_12_1_
{
    class Program
    {
        static void Main(string[] args)
        {
            string a=Console.ReadLine();
            string[] am=Regex.Split(a, @"\s+");

            int n, R, r;
            double ang=0;

            n = int.Parse(am[0]);
            R = int.Parse(am[1]);
            r = int.Parse(am[2]);

            if (R < r)
                ang = 10;
            if (R >= r && R < r * 2)
                ang = Math.PI;
            if (R==2*r)
                ang = Math.PI / 2;
            if (R>2*r)
            {
                int g = R - r;
                int k = r;
                ang = Math.Asin((double)k / (double)g);
            }
            if (ang * n <= Math.PI+0.0000000001)
                Console.WriteLine("YES");
            else
                Console.WriteLine("NO");
            //Console.ReadLine();
        }
    }
}

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace Codeforces
{
    internal class Program
    {
        private static string Read()
        {
            return Console.ReadLine();
        }
        private static string[] ReadArray()
        {
            return Console.ReadLine().Split(' ');
        }
        private static int ReadInt()
        {
            return Int32.Parse(Console.ReadLine());
        }
        private static long ReadLong()
        {
            return long.Parse(Console.ReadLine());
        }
        private static int ReadNextInt(string[] input, int index)
        {
            return Int32.Parse(input[index]);
        }

        private static void Main()
        {
            var input = ReadArray();
            var n = ReadNextInt(input, 0);
            var rR = ReadNextInt(input, 1);
            var r = ReadNextInt(input, 2);
            if (r == rR && n == 1)
            {
                Console.WriteLine("YES");
                return;
            }
            if (r >= rR)
            {
                Console.WriteLine("NO");
                return;
            }
            if (2 * r > rR)
            {
                if (n == 1)
                    Console.WriteLine("YES");
                else
                {
                    Console.WriteLine("NO");
                }
                return;
            }
            if (2 * r == rR)
            {
                if (n <= 2)
                    Console.WriteLine("YES");
                else
                {
                    Console.WriteLine("NO");
                }
                return;
            }

            var a = 2 * Math.Asin((double)r / (rR - r));
            if (a * n <= 2 * Math.PI + 1e-9)
                Console.WriteLine("YES");
            else
            {
                Console.WriteLine("NO");
            }

        }
    }
}

/*
 * Created by SharpDevelop.
 * User: zhe
 * Date: 2012/1/4
 * Time: 23:03
 *
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.IO;

namespace A_20120104
{
    class Program
    {
        static public double sqr(double x) {
            return x * x;
        }

        public static void Main(string[] args)
        {
            int n, bigR, smallR;
            string cmd = Console.ReadLine();
            string[] str = cmd.Split(" \t".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            n = int.Parse(str[0]);
            bigR = int.Parse(str[1]);
            smallR = int.Parse(str[2]);

            bool res = true;
            if (smallR > bigR) {
                res = false;
                if (n <= 0) res = true;
            } else {
                if (smallR == bigR) {
                    if (n <= 1) res = true; else res = false;
                } else {

                    int totn = 0;
                    if (smallR * 2 > bigR) totn = 1; else {
                        if (Math.Abs(smallR * 1.0 / (bigR - smallR)) <= 1) {

                            double n0 = Math.PI / Math.Asin(smallR * 1.0 / (bigR - smallR));

                            if (n0 >= 0) totn += (int) Math.Floor(n0 + 1e-8);

                        }
                    }
                    if (totn >= n) res = true; else res = false;
                }

            }
            if (res) Console.WriteLine("YES"); else Console.WriteLine("NO");
            Console.ReadLine();
        }

    }
}

using System;

class Program
{
  static void Main()
  {
    int n, R, r;
    string[] valuesStr = Console.ReadLine().Split();
    n = int.Parse(valuesStr[0]);
    R = int.Parse(valuesStr[1]);
    r = int.Parse(valuesStr[2]);

    string answer = "NO";
    if((n == 1) && (r <= R))
      answer = "YES";
    else if((n == 2) && (r + r <= R))
      answer = "YES";
    else
    {
      double rr = r / Math.Cos(Math.PI / 2.0 - Math.PI / n);
      if(rr + r <= R)
        answer = "YES";
    }
    Console.Write(answer);
  }
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

class Solver
{
    public void Solve()
    {
        var ss = CF.ReadLine().Split(' ');
        int n = int.Parse(ss[0]);
        int R = int.Parse(ss[1]);
        int r = int.Parse(ss[2]);

        if (n == 1)
        {
            if( r>R)
                CF.WriteLine("NO");
            else
                CF.WriteLine("YES");
            return;
        }
        if (n == 2)
        {
            if (r*2 > R)
                CF.WriteLine("NO");
            else
                CF.WriteLine("YES");
            return;
        }

        var rad = Math.PI/n;
        if( r > (double)(R-r)*Math.Sin(rad)+0.0000001  )
            CF.WriteLine("NO");
        else
            CF.WriteLine("YES");
    }

    //  test
    static Utils CF = new Utils(new[]{
@"
6 9 3
"
,

@"
4 10 4
"
,

@"
5 10 4
"
,
@"
1 10 10
"

    });
    #region test

    static void Main(string[] args)
    {
#if DEBUG
        for (int t=0;t<CF.TestCount;t++ )
        {
            CF.Test(t);
			var sw = new Stopwatch();
			sw.Start();
            new Solver().Solve();
			Debug.WriteLine("time: "+sw.ElapsedMilliseconds+ " ms");
		}
#else
        new Solver().Solve();
#endif
    }

    class Utils
    {
        public void Test(int t)
        {
            _lines = new List<string>();
            string[] ss = _test_input[t].Replace("\n", "").Split('\r');
            for (int i = 0; i < ss.Length; i++)
            {
                if (
                    (i == 0 || i == ss.Length - 1) &&
                    ss[i].Length == 0
                    )
                    continue;

                _lines.Add(ss[i]);
            }
        }

        public int TestCount
        {
            get
            {
                return _test_input.Length;
            }
        }

        public string ReadLine()
        {
#if DEBUG
            string s = null;
            if (_lines.Count > 0)
            {
                s = _lines[0];
                _lines.RemoveAt(0);
            }
            return s;

#else
            //return _sr.ReadLine();
        return Console.In.ReadLine();
#endif
        }

        public void WriteLine(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.WriteLine(o);
#else
            //_sw.WriteLine(o);
        Console.WriteLine(o);
#endif
        }

        public void Write(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.Write(o);
#else
                //_sw.Write(o);
        Console.Write(o);
#endif
        }

        string[] _test_input;

        List<string> _lines;

#if DEBUG
        public Utils(string[] test_input)
        {
            _test_input = test_input;
        }
#else

        public Utils(string[] dummy)
        {
            //_sr = new System.IO.StreamReader("input.txt");
            //_sw = new System.IO.StreamWriter("output.txt");
        }
#endif

    }

    #endregion
}

using System;
using System.Collections.Generic;

public class Programku
{
  public static void Main ( )
  {
    string line = Console.ReadLine ( );
    string[] aline = line.Split ( new char[] { ' ' } );
    int n = int.Parse ( aline[0] );
    int R = int.Parse ( aline[1] );
    int r = int.Parse ( aline[2] );
    int m = new Programku ( ).countmaxplate ( r, R );
    //Console.WriteLine ( m );
    if ( m >= n )
      Console.WriteLine ( "YES" );
    else
      Console.WriteLine ( "NO" );
  }

  public int countmaxplate ( int r, int R )
  {
    if ( r > R )
      return 0;
    if ( r == R )
      return 1;
    int circ;
    if ( ( 2 * r ) > R )
    {
      circ = 1;
    }
    else
    {
      double angle = 2 * Math.Asin ( ( double ) r / ( R - r ) );
      double circd = 2 * Math.PI / angle;
      circ = ( int ) ( circd + 1e-9 );
    }
    return circ;
  }

}

using System;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Globalization;
using System.Collections.Generic;
using System.Threading;

namespace CodeForces
{
	internal class A
	{

		private void Solve()
		{
			int n = NextInt(), R = NextInt(), r = NextInt();
			if ( r > R )
			{
				Out.WriteLine( "NO" );
				return;
			}
			if ( r > R - r )
			{
				if ( n == 1 )
				{
					Out.WriteLine( "YES" );
					return;
				}
				else
				{
					Out.WriteLine( "NO" );
					return;
				}
			}
			if ( r == R - r )
			{
				if ( n <= 2 )
				{
					Out.WriteLine( "YES" );
					return;
				}
				else
				{
					Out.WriteLine( "NO" );
					return;
				}
			}

			double a = Math.Asin( r / ( R - r + 0.0 ) ) * n;

			if ( a < Math.PI + 1e-8 )
			{
				Out.WriteLine( "YES" );
				return;
			}
			else
			{
				Out.WriteLine( "NO" );
				return;
			}
		}

		#region Local wireup

		public int NextInt()
		{
			return _in.NextInt();
		}

		public long NextLong()
		{
			return _in.NextLong();
		}

		public string NextLine()
		{
			return _in.NextLine();
		}

		public double NextDouble()
		{
			return _in.NextDouble();
		}

		readonly Scanner _in = new Scanner();
		static readonly TextWriter Out = Console.Out;

		void Start()
		{
#if !ONLINE_JUDGE
			var timer = new Stopwatch();
			timer.Start();
#endif
			var t = new Thread( Solve, 64 * 1024 * 1024 );
			t.Start();
			t.Join();
#if !ONLINE_JUDGE
			timer.Stop();
			Console.WriteLine( string.Format( CultureInfo.InvariantCulture, "Done in {0} seconds.\nPress <Enter> to exit.", timer.ElapsedMilliseconds / 1000.0 ) );
			Console.ReadLine();
#endif
		}

		static void Main()
		{
			new A().Start();
		}

		class Scanner : IDisposable
		{
			#region Fields

			readonly TextReader _reader;
			readonly int _bufferSize;
			readonly bool _closeReader;
			readonly char[] _buffer;
			int _length, _pos;

			#endregion

			#region .ctors

			public Scanner( TextReader reader, int bufferSize, bool closeReader )
			{
				_reader = reader;
				_bufferSize = bufferSize;
				_closeReader = closeReader;
				_buffer = new char[_bufferSize];
				FillBuffer( false );
			}

			public Scanner( TextReader reader, bool closeReader ) : this( reader, 1 << 16, closeReader ) { }

			public Scanner( string fileName ) : this( new StreamReader( fileName, Encoding.Default ), true ) { }

#if ONLINE_JUDGE
                        public Scanner() : this( Console.In, false ) { }
#else
			public Scanner() : this( "input.txt" ) { }
#endif

			#endregion

			#region IDisposable Members

			public void Dispose()
			{
				if ( _closeReader )
				{
					_reader.Close();
				}
			}

			#endregion

			#region Properties

			public bool Eof
			{
				get
				{
					if ( _pos < _length ) return false;
					FillBuffer( false );
					return _pos >= _length;
				}
			}

			#endregion

			#region Methods

			private char NextChar()
			{
				if ( _pos < _length ) return _buffer[_pos++];
				FillBuffer( true );
				return _buffer[_pos++];
			}

			private char PeekNextChar()
			{
				if ( _pos < _length ) return _buffer[_pos];
				FillBuffer( true );
				return _buffer[_pos];
			}

			private void FillBuffer( bool throwOnEof )
			{
				_length = _reader.Read( _buffer, 0, _bufferSize );
				if ( throwOnEof && Eof )
				{
					throw new IOException( "Can't read beyond the end of file" );
				}
				_pos = 0;
			}

			public int NextInt()
			{
				var neg = false;
				int res = 0;
				SkipWhitespaces();
				if ( !Eof && PeekNextChar() == '-' )
				{
					neg = true;
					_pos++;
				}
				while ( !Eof && !IsWhitespace( PeekNextChar() ) )
				{
					var c = NextChar();
					if ( c < '0' || c > '9' ) throw new ArgumentException( "Illegal character" );
					res = 10 * res + c - '0';
				}
				return neg ? -res : res;
			}

			public long NextLong()
			{
				var neg = false;
				long res = 0;
				SkipWhitespaces();
				if ( !Eof && PeekNextChar() == '-' )
				{
					neg = true;
					_pos++;
				}
				while ( !Eof && !IsWhitespace( PeekNextChar() ) )
				{
					var c = NextChar();
					if ( c < '0' || c > '9' ) throw new ArgumentException( "Illegal character" );
					res = 10 * res + c - '0';
				}
				return neg ? -res : res;
			}

			public string NextLine()
			{
				SkipUntilNextLine();
				if ( Eof ) return "";
				var builder = new StringBuilder();
				while ( !Eof && !IsEndOfLine( PeekNextChar() ) )
				{
					builder.Append( NextChar() );
				}
				return builder.ToString();
			}

			public double NextDouble()
			{
				SkipWhitespaces();
				var builder = new StringBuilder();
				while ( !Eof && !IsWhitespace( PeekNextChar() ) )
				{
					builder.Append( NextChar() );
				}
				return double.Parse( builder.ToString(), CultureInfo.InvariantCulture );
			}

			private void SkipWhitespaces()
			{
				while ( !Eof && IsWhitespace( PeekNextChar() ) )
				{
					++_pos;
				}
			}

			private void SkipUntilNextLine()
			{
				while ( !Eof && IsEndOfLine( PeekNextChar() ) )
				{
					++_pos;
				}
			}

			private static bool IsWhitespace( char c )
			{
				return c == ' ' || c == '\t' || c == '\n' || c == '\r';
			}

			private static bool IsEndOfLine( char c )
			{
				return c == '\n' || c == '\r';
			}

			#endregion
		}

		#endregion
	}
}

using System;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Globalization;
using System.Collections.Generic;
using System.Threading;

namespace CodeForces
{
	internal class A
	{

		private void Solve()
		{
			int n = NextInt(), R = NextInt(), r = NextInt();
			if ( r > R )
			{
				Out.WriteLine( "NO" );
				return;
			}
			if ( r > R - r )
			{
				if ( n == 1 )
				{
					Out.WriteLine( "YES" );
					return;
				}
				else
				{
					Out.WriteLine( "NO" );
					return;
				}
			}
			if ( r == R - r )
			{
				if ( n <= 2 )
				{
					Out.WriteLine( "YES" );
					return;
				}
				else
				{
					Out.WriteLine( "NO" );
					return;
				}
			}

			double a = Math.Asin( r / ( R - r + 0.0 ) );

			if ( a < Math.PI / n + 1e-9 )
			{
				Out.WriteLine( "YES" );
				return;
			}
			else
			{
				Out.WriteLine( "NO" );
				return;
			}
		}

		#region Local wireup

		public int NextInt()
		{
			return _in.NextInt();
		}

		public long NextLong()
		{
			return _in.NextLong();
		}

		public string NextLine()
		{
			return _in.NextLine();
		}

		public double NextDouble()
		{
			return _in.NextDouble();
		}

		readonly Scanner _in = new Scanner();
		static readonly TextWriter Out = Console.Out;

		void Start()
		{
#if !ONLINE_JUDGE
			var timer = new Stopwatch();
			timer.Start();
#endif
			var t = new Thread( Solve, 64 * 1024 * 1024 );
			t.Start();
			t.Join();
#if !ONLINE_JUDGE
			timer.Stop();
			Console.WriteLine( string.Format( CultureInfo.InvariantCulture, "Done in {0} seconds.\nPress <Enter> to exit.", timer.ElapsedMilliseconds / 1000.0 ) );
			Console.ReadLine();
#endif
		}

		static void Main()
		{
			new A().Start();
		}

		class Scanner : IDisposable
		{
			#region Fields

			readonly TextReader _reader;
			readonly int _bufferSize;
			readonly bool _closeReader;
			readonly char[] _buffer;
			int _length, _pos;

			#endregion

			#region .ctors

			public Scanner( TextReader reader, int bufferSize, bool closeReader )
			{
				_reader = reader;
				_bufferSize = bufferSize;
				_closeReader = closeReader;
				_buffer = new char[_bufferSize];
				FillBuffer( false );
			}

			public Scanner( TextReader reader, bool closeReader ) : this( reader, 1 << 16, closeReader ) { }

			public Scanner( string fileName ) : this( new StreamReader( fileName, Encoding.Default ), true ) { }

#if ONLINE_JUDGE
                        public Scanner() : this( Console.In, false ) { }
#else
			public Scanner() : this( "input.txt" ) { }
#endif

			#endregion

			#region IDisposable Members

			public void Dispose()
			{
				if ( _closeReader )
				{
					_reader.Close();
				}
			}

			#endregion

			#region Properties

			public bool Eof
			{
				get
				{
					if ( _pos < _length ) return false;
					FillBuffer( false );
					return _pos >= _length;
				}
			}

			#endregion

			#region Methods

			private char NextChar()
			{
				if ( _pos < _length ) return _buffer[_pos++];
				FillBuffer( true );
				return _buffer[_pos++];
			}

			private char PeekNextChar()
			{
				if ( _pos < _length ) return _buffer[_pos];
				FillBuffer( true );
				return _buffer[_pos];
			}

			private void FillBuffer( bool throwOnEof )
			{
				_length = _reader.Read( _buffer, 0, _bufferSize );
				if ( throwOnEof && Eof )
				{
					throw new IOException( "Can't read beyond the end of file" );
				}
				_pos = 0;
			}

			public int NextInt()
			{
				var neg = false;
				int res = 0;
				SkipWhitespaces();
				if ( !Eof && PeekNextChar() == '-' )
				{
					neg = true;
					_pos++;
				}
				while ( !Eof && !IsWhitespace( PeekNextChar() ) )
				{
					var c = NextChar();
					if ( c < '0' || c > '9' ) throw new ArgumentException( "Illegal character" );
					res = 10 * res + c - '0';
				}
				return neg ? -res : res;
			}

			public long NextLong()
			{
				var neg = false;
				long res = 0;
				SkipWhitespaces();
				if ( !Eof && PeekNextChar() == '-' )
				{
					neg = true;
					_pos++;
				}
				while ( !Eof && !IsWhitespace( PeekNextChar() ) )
				{
					var c = NextChar();
					if ( c < '0' || c > '9' ) throw new ArgumentException( "Illegal character" );
					res = 10 * res + c - '0';
				}
				return neg ? -res : res;
			}

			public string NextLine()
			{
				SkipUntilNextLine();
				if ( Eof ) return "";
				var builder = new StringBuilder();
				while ( !Eof && !IsEndOfLine( PeekNextChar() ) )
				{
					builder.Append( NextChar() );
				}
				return builder.ToString();
			}

			public double NextDouble()
			{
				SkipWhitespaces();
				var builder = new StringBuilder();
				while ( !Eof && !IsWhitespace( PeekNextChar() ) )
				{
					builder.Append( NextChar() );
				}
				return double.Parse( builder.ToString(), CultureInfo.InvariantCulture );
			}

			private void SkipWhitespaces()
			{
				while ( !Eof && IsWhitespace( PeekNextChar() ) )
				{
					++_pos;
				}
			}

			private void SkipUntilNextLine()
			{
				while ( !Eof && IsEndOfLine( PeekNextChar() ) )
				{
					++_pos;
				}
			}

			private static bool IsWhitespace( char c )
			{
				return c == ' ' || c == '\t' || c == '\n' || c == '\r';
			}

			private static bool IsEndOfLine( char c )
			{
				return c == '\n' || c == '\r';
			}

			#endregion
		}

		#endregion
	}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace A
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int[] arr = s.Split(' ').Select(str => int.Parse(str)).ToArray();

            int n = arr[0];
            double R = arr[1];
            double r = arr[2];

            //double midle = 2.0 * Math.PI * (R - r);
            //int maxCount = (int)(midle / (2.0 * r));

            double alfa = Math.Asin(r / (R - r));
            int maxCount = int.MaxValue;

            if (Double.IsNaN(alfa))
            {
                maxCount = 0;
            }
            else if (alfa != 0)
            {
                //maxCount = (int)Math.Round((Math.PI / alfa), MidpointRounding.AwayFromZero);
                maxCount = (int)((Math.PI / alfa) + 1e-6);
            }

            bool onePlate = (n == 1 && r <= R);

            if (n <= maxCount || onePlate)
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;

class Scanner
{
    string[] s;
    int i;

    char[] cs = new char[] { ' ' };

    public Scanner()
    {
        s = new string[0];
        i = 0;
    }

    public string next()
    {
        if (i < s.Length) return s[i++];
        s = Console.ReadLine().Split(cs, StringSplitOptions.RemoveEmptyEntries);
        i = 0;
        return s[i++];
    }

    public int nextInt()
    {
        return int.Parse(next());
    }

    public long nextLong()
    {
        return long.Parse(next());
    }

}

class Myon
{
    Scanner cin;
    Myon() { }

    public static void Main()
    {
        new Myon().calc();
    }

    int h, w;
    string[] s;
    int[,] num;
    int[,] usedcount;
    int count;
    int prenum = 0;

    void calc()
    {
        Scanner cin = new Scanner();
        int n, R, r;
        n = cin.nextInt();
        R = cin.nextInt();
        r = cin.nextInt();
        if (R < r)
        {
            Console.WriteLine("NO");
            return;
        }
        else if (n == 1)
        {
            Console.WriteLine("YES");
            return;
        }
        else if (R < 2 * r)
        {
            Console.WriteLine("NO");
            return;
        }
        else if (R == 2 * r)
        {
            if (n <= 2) Console.WriteLine("YES");
            else Console.WriteLine("NO");
            return;
        }
        double length = r * (R / 2.0) / (R / 2.0 - r / 2.0);
        double len2 = Math.Sqrt(2 * (R / 2.0) * (R / 2.0) - 2 * (R / 2.0) * (R / 2.0) * Math.Cos(Math.PI * 2 / n));
        //Console.WriteLine(length + " " + len2);
        if (length <= len2) Console.WriteLine("YES");
        else Console.WriteLine("NO");
    }

}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CF100
{
    class Program
    {
        static void Main(string[] args)
        {
            String[] tokens = Console.ReadLine().Split(' ');
            int n = int.Parse(tokens[0]);
            int R = int.Parse(tokens[1]);
            int r = int.Parse(tokens[2]);

            if (CanFitAroundTable(n, R, r))
                Console.WriteLine("YES");
            else
                Console.WriteLine("NO");
        }

        private static bool CanFitAroundTable(int numPlates, int tableRadius, int plateRadius)
        {
            if (numPlates == 0)
                return true;
            if (numPlates == 1)
                return tableRadius >= plateRadius;
            return tableRadius >= plateRadius * (1.0 + 1.0 / Math.Sin(Math.PI / numPlates));
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CF_100
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] ss = Console.ReadLine().Split(' ');
            int n = int.Parse(ss[0]);
            int R = int.Parse(ss[1]);
            int r = int.Parse(ss[2]);
            if (r > R)
            {
                Console.Write("NO");
                return;
            }
            if (2 * r > R)
            {
                if (n == 1 || n == 0)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }

            if (2 * r == R)
            {
                if (n <= 2)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }

            double need = Math.PI / n;
            double needsin = n > 1 ? Math.Sin(need) : 2;
            double mysin = ((double)r) / (R - r);

            if (mysin <= (needsin + 0.0000000000000001))
                Console.Write("YES");
            else
                Console.Write("NO");
            return;
        }
    }
}

using System; using System.Linq;

class P {
  static void Main(){
    var s = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
    var n = s[0]; var R = s[1]; var r= s[2];
    var ang = 360.0 / n / 2/ 180* Math.PI;
    var d = (R - r)* Math.Sin(ang) * 1.00001;
    Console.Write((d >= r)  || (n <= 2 && r*n <= R)? "YES": "NO");
  }
}

using System; using System.Linq;

class P {
  static void Main(){
    var s =Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
    var n = s[0]; var R = s[1]; var r= s[2];
    var ang = 360.0 / n / 2/ 180* Math.PI;
    var d = (R - r) / Math.Cos(ang) * Math.Sin(ang);
    Console.Write((d >= r)  || (n == 1 && r <= R)? "YES": "NO");
  }
}

using System; using System.Linq;

class P {
  static void Main(){
    var s =Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
    var n = s[0]; var R = s[1]; var r= s[2];
    var ang = 360.0 / n / 2/ 180* Math.PI;
    var d = r / Math.Cos(ang) * Math.Sin(ang);
    Console.Write((d >= r)  || (n == 1 && r <= R)? "YES": "NO");
  }
}

using System; using System.Linq;

class P {
  static void Main(){
    var s =Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
    var n = s[0]; var R = s[1]; var r= s[2];
    var res = (R - r) * 2 * Math.PI / 2 / r;
    Console.Write((res >= n && r*2 >= R)  || (n == 1 && r <= R)? "YES": "NO");
  }
}

using System; using System.Linq;

class P {
  static void Main(){
    var s = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
    var n = s[0]; var R = s[1]; var r= s[2];
    var ang = 360.0 / n / 2/ 180* Math.PI;
    var d = (R - r)* Math.Sin(ang) * 0.99999;
    Console.Write((d >= r)  || (n <= 2 && r*n <= R)? "YES": "NO");
  }
}

using System; using System.Linq;

class P {
  static void Main(){
    var s =Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
    var n = s[0]; var R = s[1]; var r= s[2];
    var res = (R - r) * 2 * Math.PI / 2 / r;
    Console.Write(res >= n  || (n == 1 && r <= R)? "YES": "NO");
  }
}

using System; using System.Linq;

class P {
  static void Main(){
    var s =Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
    var n = s[0]; var R = s[1]; var r= s[2];
    var res = (R - r) * 2 * Math.PI / 2 / r;
    Console.Write(res >= n ? "YES": "NO");
  }
}

using System; using System.Linq;

class P {
  static void Main(){
    var s =Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
    var n = s[0]; var R = s[1]; var r= s[2];
    var ang = 360.0 / n / 2/ 180* Math.PI;
    var d = (R - r)* Math.Sin(ang);
    Console.Write((d >= r)  || (n == 1 && r <= R)? "YES": "NO");
  }
}

using System; using System.Linq;

class P {
  static void Main(){
    var s =Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
    var n = s[0]; var R = s[1]; var r= s[2];
    var d = Math.Sqrt(R*R - r*r);
    Console.Write((d >= r)  || (n == 1 && r <= R)? "YES": "NO");
  }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tar
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = Console.ReadLine().Split(' ');

            int n = int.Parse(str[0]);
            int R = int.Parse(str[1]);
            int r = int.Parse(str[2]);

         //  int n = 10;
          // int R = 1000;
        // int   r = 250;

            double lr = (R - r) * Math.PI;

            if (n == 1)
            {
                if(R>=r){
                  Console.WriteLine("YES");
                  return;
                }
            }

            if (R - r<r)
            {
                Console.WriteLine("NO");
                return;
            }

            double x1 = 0;
            double y1 = R - r;
            double angle = Math.PI * 2 / (double)n;
            double x2 = Math.Sin(angle)* (double)(R-r);
            double y2 = Math.Cos(angle) * (double)(R - r);

            double dist = Math.Sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

            //Console.WriteLine(x1+" "+y1+" "+x2+" "+y2+" "+dist);

            //Console.WriteLine(Math.Atan((double)237/(double)1000)*180/Math.PI);
            if (dist >= 2*r)
            {
                Console.WriteLine("YES");
            }
            else {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tar
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = Console.ReadLine().Split(' ');

            int n = int.Parse(str[0]);
            int R = int.Parse(str[1]);
            int r = int.Parse(str[2]);

         //  int n = 10;
          // int R = 1000;
        // int   r = 250;

            double lr = (R - r) * Math.PI;

            if (n == 1)
            {
                if(R>=r){
                  Console.WriteLine("YES");
                  return;
                }
            }

            if (R - r<r)
            {
                Console.WriteLine("NO");
                return;
            }

            double x1 = 0;
            double y1 = R - r;
            double angle = Math.PI * 2 / (double)n;
            double x2 = Math.Sin(angle)* (double)(R-r);
            double y2 = Math.Cos(angle) * (double)(R - r);

            double dist = Math.Sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

            //Console.WriteLine(dist+" "+(2*r));

            //Console.WriteLine(Math.Atan((double)237/(double)1000)*180/Math.PI);
            if (Math.Abs(dist - 2*r)<0.000000001 && dist>2*r)
            {
                Console.WriteLine("YES");
            }
            else {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tar
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = Console.ReadLine().Split(' ');

            int n = int.Parse(str[0]);
            int R = int.Parse(str[1]);
            int r = int.Parse(str[2]);

            double lr = (R - r) * Math.PI;

            if (r * n <= lr)
            {
                Console.WriteLine("YES");
            }
            else {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tar
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = Console.ReadLine().Split(' ');

            int n = int.Parse(str[0]);
            int R = int.Parse(str[1]);
            int r = int.Parse(str[2]);

            double lr = (R - r) * Math.PI;

            if(lr==0){
                if(n==1){
                    Console.WriteLine("YES");
                    return;
                }
            }

            if (r * n <= lr)
            {
                Console.WriteLine("YES");
            }
            else {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tar
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = Console.ReadLine().Split(' ');

            int n = int.Parse(str[0]);
            int R = int.Parse(str[1]);
            int r = int.Parse(str[2]);

         //  int n = 10;
          // int R = 1000;
        // int   r = 250;

            double lr = (R - r) * Math.PI;

            if (n == 1)
            {
                if(R>=r){
                  Console.WriteLine("YES");
                  return;
                }
            }

            if (R - r<r)
            {
                Console.WriteLine("NO");
                return;
            }

            double x1 = 0;
            double y1 = R - r;
            double angle = Math.PI * 2 / (double)n;
            double x2 = Math.Sin(angle)* (double)(R-r);
            double y2 = Math.Cos(angle) * (double)(R - r);

            double dist = Math.Sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

            Console.WriteLine(dist+" "+(2*r));

            //Console.WriteLine(Math.Atan((double)237/(double)1000)*180/Math.PI);
            if (Math.Abs(dist - 2*r)<0.000000001 && dist>2*r)
            {
                Console.WriteLine("YES");
            }
            else {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tar
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = Console.ReadLine().Split(' ');

            int n = int.Parse(str[0]);
            int R = int.Parse(str[1]);
            int r = int.Parse(str[2]);

            double lr = (R - r) * Math.PI;

            if (n == 1)
            {
                if(R>=r){
                  Console.WriteLine("YES");
                  return;
                }
            }

            if (R - r<r)
            {
                Console.WriteLine("NO");
                return;
            }

            if (r * n <= lr)
            {
                Console.WriteLine("YES");
            }
            else {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tar
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = Console.ReadLine().Split(' ');

            int n = int.Parse(str[0]);
            int R = int.Parse(str[1]);
            int r = int.Parse(str[2]);

            double lr = (R - r) * Math.PI;

            if(lr==0){
                if(n==1){
                    Console.WriteLine("YES");
                    return;
                }
            }

            if (R - r<r)
            {
                Console.WriteLine("NO");
                return;
            }

            if (r * n <= lr)
            {
                Console.WriteLine("YES");
            }
            else {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tar
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = Console.ReadLine().Split(' ');

            int n = int.Parse(str[0]);
            int R = int.Parse(str[1]);
            int r = int.Parse(str[2]);

         //  int n = 10;
          // int R = 1000;
        // int   r = 250;

            double lr = (R - r) * Math.PI;

            if (n == 1)
            {
                if(R>=r){
                  Console.WriteLine("YES");
                  return;
                }
            }

            if (R - r<r)
            {
                Console.WriteLine("NO");
                return;
            }

            double x1 = 0;
            double y1 = R - r;
            double angle = Math.PI * 2 / (double)n;
            double x2 = Math.Sin(angle)* (double)(R-r);
            double y2 = Math.Cos(angle) * (double)(R - r);

            double dist = Math.Sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

            //Console.WriteLine(dist+" "+(2*r));

            //Console.WriteLine(Math.Atan((double)237/(double)1000)*180/Math.PI);
            if (Math.Abs(dist - 2*r)<0.000000001)
            {
                Console.WriteLine("YES");
            }
            else {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.IO;
using System.Text;

namespace New_Year_Table
{
    internal class Program
    {
        private static readonly StreamReader reader = new StreamReader(Console.OpenStandardInput(1024*10), Encoding.ASCII, false, 1024*10);
        private static readonly StreamWriter writer = new StreamWriter(Console.OpenStandardOutput(1024*10), Encoding.ASCII, 1024*10);

        private static void Main(string[] args)
        {
            int n = Next();
            int R = Next();
            int r = Next();

            if (n == 1)
            {
                writer.WriteLine(r <= R ? "YES" : "NO");
            }
            else if (n == 2)
            {
                writer.WriteLine(2*r <= R ? "YES" : "NO");
            }
            else
            {
                double sin = Math.Sin(Math.PI/n);
                double maxr = R*sin/(1 + sin);
                writer.WriteLine(r <= maxr ? "YES" : "NO");
            }
            writer.Flush();
        }

        private static int Next()
        {
            int c;
            int res = 0;
            do
            {
                c = reader.Read();
                if (c == -1)
                    return res;
            } while (c < '0' || c > '9');
            res = c - '0';
            while (true)
            {
                c = reader.Read();
                if (c < '0' || c > '9')
                    return res;
                res *= 10;
                res += c - '0';
            }
        }
    }
}

using System;
using System.IO;
using System.Text;

namespace New_Year_Table
{
    internal class Program
    {
        private static readonly StreamReader reader = new StreamReader(Console.OpenStandardInput(1024*10), Encoding.ASCII, false, 1024*10);
        private static readonly StreamWriter writer = new StreamWriter(Console.OpenStandardOutput(1024*10), Encoding.ASCII, 1024*10);

        private static void Main(string[] args)
        {
            int n = Next();
            int R = Next();
            int r = Next();

            if (n == 1)
            {
                writer.WriteLine(r <= R ? "YES" : "NO");
            }
            else if (n == 2)
            {
                writer.WriteLine(2*r <= R ? "YES" : "NO");
            }
            else
            {
                double sin = Math.Sin(Math.PI/n);
                writer.WriteLine(r * (1 + sin) <= R * sin ? "YES" : "NO");
            }
            writer.Flush();
        }

        private static int Next()
        {
            int c;
            int res = 0;
            do
            {
                c = reader.Read();
                if (c == -1)
                    return res;
            } while (c < '0' || c > '9');
            res = c - '0';
            while (true)
            {
                c = reader.Read();
                if (c < '0' || c > '9')
                    return res;
                res *= 10;
                res += c - '0';
            }
        }
    }
}

using System;
using System.IO;
using System.Text;

namespace New_Year_Table
{
    internal class Program
    {
        private static readonly StreamReader reader = new StreamReader(Console.OpenStandardInput(1024*10), Encoding.ASCII, false, 1024*10);
        private static readonly StreamWriter writer = new StreamWriter(Console.OpenStandardOutput(1024*10), Encoding.ASCII, 1024*10);

        private static void Main(string[] args)
        {
            int n = Next();
            int R = Next();
            int r = Next();

            if (n == 1)
            {
                writer.WriteLine(r <= R ? "YES" : "NO");
            }
            else if (n == 2)
            {
                writer.WriteLine(2*r <= R ? "YES" : "NO");
            }
            else
            {
                double sin = Math.Sin(Math.PI/n);
                double maxr = Math.Round(R*sin/(1 + sin),2);
                writer.WriteLine(r <= maxr ? "YES" : "NO");
            }
            writer.Flush();
        }

        private static int Next()
        {
            int c;
            int res = 0;
            do
            {
                c = reader.Read();
                if (c == -1)
                    return res;
            } while (c < '0' || c > '9');
            res = c - '0';
            while (true)
            {
                c = reader.Read();
                if (c < '0' || c > '9')
                    return res;
                res *= 10;
                res += c - '0';
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace _140A
{
    class Program
    {
        static void Main(string[] args)
        {
            Input data = new Input(Console.ReadLine());

            string result = Processing.Process(data);

            Console.WriteLine(result);
            //Console.ReadKey();
        }
    }

    public static class Processing
    {
        public static string Process(Input data)
        {
            string result = "YES";

            bool yes;

            if (data.n == 1)
            {
                yes = data.r <= data.R;
            }
            else if (data.n == 2)
            {
                yes = 2 * data.r <= data.R;
            }
            else
            {
                yes = Math.Sin(Math.PI / data.n) * (data.R - data.r) > data.r;
            }
            if (!yes)
            {
                result = "NO";
            }
            return result;
        }
    }

    public class Input
    {
        public int n { get; private set; }
        public int R { get; private set; }
        public int r { get; private set; }

        public Input(string input)
        {
            var array = input.Split(' ');
            n = Int32.Parse(array[0]);
            R = Int32.Parse(array[1]);
            r = Int32.Parse(array[2]);
        }
    }
}

using System;
class Test {
    static int Main() {
        string [] str = Console.ReadLine().Split();
        double n = Double.Parse(str[0]);
        double ro = Double.Parse(str[1]);
        double ri = Double.Parse(str[2]);
        if(ri>ro){
            Console.WriteLine("NO");
            return 0;
        }
        if(ro-2*ri<0){
            Console.WriteLine("NO");
            return 0;
        }
        double a = 2*Math.Asin(ri/(ro-ri))*n;
        if(a>2*Math.PI){
            Console.WriteLine("NO");
            return 0;
        }
        Console.WriteLine("YES");
        return 0;
    }
}

using System;
class Test {
    static int Main() {
        string [] str = Console.ReadLine().Split();
        double n = Double.Parse(str[0]);
        double ro = Double.Parse(str[1]);
        double ri = Double.Parse(str[2]);
        double sum = 0;
        while(true){
            double cr  = ro-ri;
            if(cr < 0){
                Console.WriteLine("NO");
                return 0;
            }
            if(ro>=2*ri){
                sum += (2*Math.PI)/(2*(Math.Asin(ri/cr)));
            }else if(ro>=ri){
                sum++;
            }
            if(sum>=n){
                Console.WriteLine("YES");
                return 0;
            }
            ro -= 2*ri;
        }
        return 0;
    }
}

using System;
class Test {
    static int Main() {
        string [] str = Console.ReadLine().Split();
        double n = Double.Parse(str[0]);
        double ro = Double.Parse(str[1]);
        double ri = Double.Parse(str[2]);
        if(ri>ro){
            Console.WriteLine("NO");
            return 0;
        }
        double a = 2*Math.Asin(ri/(ro-ri))*n;
        if(a>2*Math.PI){
            Console.WriteLine("NO");
            return 0;
        }
        Console.WriteLine("YES");
        return 0;
    }
}

using System;
class Test {
    static int Main() {
        string [] str = Console.ReadLine().Split();
        double n = Double.Parse(str[0]);
        double ro = Double.Parse(str[1]);
        double ri = Double.Parse(str[2]);
        if(ri>ro){
            Console.WriteLine("NO");
            return 0;
        }
        if(ro-2*ri<0){
            if(n==1){
                Console.WriteLine("YES");
                return 0;
            }
            Console.WriteLine("NO");
            return 0;
        }
        double a = 2*Math.Asin(ri/(ro-ri))*n;
        if(a>2*Math.PI){
            Console.WriteLine("NO");
            return 0;
        }
        Console.WriteLine("YES");
        return 0;
    }
}

using System;
class Test {
    static int Main() {
        string [] str = Console.ReadLine().Split();
        double n = Double.Parse(str[0]);
        double ro = Double.Parse(str[1]);
        double ri = Double.Parse(str[2]);
        if(ri>ro){
            Console.WriteLine("NO");
            return 0;
        }
        if(ro-2*ri<0){
            if(n==1){
                Console.WriteLine("YES");
                return 0;
            }
            Console.WriteLine("NO");
            return 0;
        }
        double a = Math.Floor((2*Math.Asin(ri/(ro-ri))*n)-(2*Math.PI));
        if(a>0){
            Console.WriteLine("NO");
            return 0;
        }
        Console.WriteLine("YES");
        return 0;
    }
}

using System;
class Test {
    static int Main() {
        string [] str = Console.ReadLine().Split();
        float n = Single.Parse(str[0]);
        float ro = Single.Parse(str[1]);
        float ri = Single.Parse(str[2]);
        if(ri>ro){
            Console.WriteLine("NO");
            return 0;
        }
        if(ro-2*ri<0){
            if(n==1){
                Console.WriteLine("YES");
                return 0;
            }
            Console.WriteLine("NO");
            return 0;
        }
        float a = ((float)(Math.Asin(ri/(ro-ri))*n))-(float)(Math.PI);
        if(a>0){
            Console.WriteLine("NO");
            return 0;
        }
        Console.WriteLine("YES");
        return 0;
    }
}

using System;
class Test {
    static int Main() {
        string [] str = Console.ReadLine().Split();
        double n = Double.Parse(str[0]);
        double ro = Double.Parse(str[1]);
        double ri = Double.Parse(str[2]);
        int sum = 0;
        double cr = ro-ri;
        if(cr < 0){
            Console.WriteLine("NO");
            return 0;
        }
        if(ro >= 2*ri){
            sum += (int)( Math.Floor( Math.PI / Math.Asin(ri/cr) ) );
        }else if(ro >= ri){
            sum++;
        }
        if(sum >= n){
            Console.WriteLine("YES");
            return 0;
         }
        Console.WriteLine("NO");
        return 0;
    }
}

using System;
class Test {
    static int Main() {
        string [] str = Console.ReadLine().Split();
        double n = Double.Parse(str[0]);
        double ro = Double.Parse(str[1]);
        double ri = Double.Parse(str[2]);
        double sum = 0;
        while(true){
            double cr  = ro-ri;
            if(cr < 0){
                Console.WriteLine("NO");
                return 0;
            }
            if(ro>2*ri){
                sum += (2*Math.PI)/(2*(Math.Asin(ri/cr)));
            }else if(ro>=ri){
                sum++;
            }
            if(sum>=n){
                Console.WriteLine("YES");
                return 0;
            }
            ro -= 2*ri;
        }
        return 0;
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace _04_01_12_1_
{
    class Program
    {
        static void Main(string[] args)
        {
            string a=Console.ReadLine();
            string[] am=Regex.Split(a, " ");

            int n, R, r;
            double ang=0;

            n = Int32.Parse(am[0]);
            R = Int32.Parse(am[1]);
            r = Int32.Parse(am[2]);

            if (R < r)
                ang = 10;
            if (R >= r && R < r * 2)
                ang = Math.PI;
            if (R==2*r)
                ang = Math.PI/2;
            if (R>2*r)
            {
                int g = R - r;
                int k = r;
                ang = Math.Asin((double)k / (double)g);
            }
            if (ang * n <= Math.PI)
                Console.WriteLine("YES");
            else
                Console.WriteLine("NO");
            Console.ReadLine();
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace _04_01_12_1_
{
    class Program
    {
        static void Main(string[] args)
        {
            string a=Console.ReadLine();
            string[] am=Regex.Split(a, " ");

            int n, R, r;
            double ang=0;

            n = Int32.Parse(am[0]);
            R = Int32.Parse(am[1]);
            r = Int32.Parse(am[2]);

            if (R < r)
                ang = 10;
            if (R >= r && R < r * 2)
                ang = Math.PI;
            if (R==2*r)
                ang = Math.PI/2;
            if (R>2*r)
            {
                int g = R - r;
                int k = r;
                ang=Math.Asin(k/g);
            }
            if (ang * n <= Math.PI)
                Console.WriteLine("YES");
            else
                Console.WriteLine("NO");
            //Console.ReadLine();
        }
    }
}

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace Codeforces
{
    internal class Program
    {
        private static string Read()
        {
            return Console.ReadLine();
        }
        private static string[] ReadArray()
        {
            return Console.ReadLine().Split(' ');
        }
        private static int ReadInt()
        {
            return Int32.Parse(Console.ReadLine());
        }
        private static long ReadLong()
        {
            return long.Parse(Console.ReadLine());
        }
        private static int ReadNextInt(string[] input, int index)
        {
            return Int32.Parse(input[index]);
        }

        private static void Main()
        {
            var input = ReadArray();
            var n = ReadNextInt(input, 0);
            var R = ReadNextInt(input, 1);
            var r = ReadNextInt(input, 2);
            if(r==R && n == 1)
            {
                Console.WriteLine("YES");
                return;
            }
            var a = Math.Acos(1 - (2.0*r*r)/((R - r)*(R - r)));
            if(a * n <= 2 * Math.PI)
                Console.WriteLine("YES");
            else
            {
                Console.WriteLine("NO");
            }

        }
    }
}

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace Codeforces
{
    internal class Program
    {
        private static string Read()
        {
            return Console.ReadLine();
        }
        private static string[] ReadArray()
        {
            return Console.ReadLine().Split(' ');
        }
        private static int ReadInt()
        {
            return Int32.Parse(Console.ReadLine());
        }
        private static long ReadLong()
        {
            return long.Parse(Console.ReadLine());
        }
        private static int ReadNextInt(string[] input, int index)
        {
            return Int32.Parse(input[index]);
        }

        private static void Main()
        {
            var input = ReadArray();
            var n = ReadNextInt(input, 0);
            var rR = ReadNextInt(input, 1);
            var r = ReadNextInt(input, 2);
            if(r==rR && n == 1)
            {
                Console.WriteLine("YES");
                return;
            }
            if(r >= rR)
            {
                Console.WriteLine("NO");
                return;
            }
            if(2 * r > rR)
            {
                if(n == 1)
                    Console.WriteLine("YES");
                else
                {
                    Console.WriteLine("NO");
                }
                return;
            }
            if(2 * r == rR)
            {
                if(n <= 2)
                    Console.WriteLine("YES");
                else
                {
                    Console.WriteLine("NO");
                }
                return;
            }

            var a = 2 * Math.Asin((double) r/(rR - r));
            if(a * n <= 2 * Math.PI)
                Console.WriteLine("YES");
            else
            {
                Console.WriteLine("NO");
            }

        }
    }
}

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace Codeforces
{
    internal class Program
    {
        private static string Read()
        {
            return Console.ReadLine();
        }
        private static string[] ReadArray()
        {
            return Console.ReadLine().Split(' ');
        }
        private static int ReadInt()
        {
            return Int32.Parse(Console.ReadLine());
        }
        private static long ReadLong()
        {
            return long.Parse(Console.ReadLine());
        }
        private static int ReadNextInt(string[] input, int index)
        {
            return Int32.Parse(input[index]);
        }

        private static void Main()
        {
            var input = ReadArray();
            var n = ReadNextInt(input, 0);
            var R = ReadNextInt(input, 1);
            var r = ReadNextInt(input, 2);
            if(r==R && n == 1)
            {
                Console.WriteLine("YES");
                return;
            }
            if(r >= R)
            {
                Console.WriteLine("NO");
                return;
            }
            var a = Math.Acos(1 - (2.0*r*r)/((R - r)*(R - r)));
            if(a * n <= 2 * Math.PI)
                Console.WriteLine("YES");
            else
            {
                Console.WriteLine("NO");
            }

        }
    }
}

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace Codeforces
{
    internal class Program
    {
        private static string Read()
        {
            return Console.ReadLine();
        }
        private static string[] ReadArray()
        {
            return Console.ReadLine().Split(' ');
        }
        private static int ReadInt()
        {
            return Int32.Parse(Console.ReadLine());
        }
        private static long ReadLong()
        {
            return long.Parse(Console.ReadLine());
        }
        private static int ReadNextInt(string[] input, int index)
        {
            return Int32.Parse(input[index]);
        }

        private static void Main()
        {
            var input = ReadArray();
            var n = ReadNextInt(input, 0);
            var rR = ReadNextInt(input, 1);
            var r = ReadNextInt(input, 2);
            if(r==rR && n == 1)
            {
                Console.WriteLine("YES");
                return;
            }
            if(r >= rR)
            {
                Console.WriteLine("NO");
                return;
            }
            if(2 * r > rR)
            {
                if(n == 1)
                    Console.WriteLine("YES");
                else
                {
                    Console.WriteLine("NO");
                }
                return;
            }
            var a = 2 * Math.Asin((double) r/(rR - r));
            if(a * n <= 2 * Math.PI)
                Console.WriteLine("YES");
            else
            {
                Console.WriteLine("NO");
            }

        }
    }
}

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace Codeforces
{
    internal class Program
    {
        private static string Read()
        {
            return Console.ReadLine();
        }
        private static string[] ReadArray()
        {
            return Console.ReadLine().Split(' ');
        }
        private static int ReadInt()
        {
            return Int32.Parse(Console.ReadLine());
        }
        private static long ReadLong()
        {
            return long.Parse(Console.ReadLine());
        }
        private static int ReadNextInt(string[] input, int index)
        {
            return Int32.Parse(input[index]);
        }

        private static void Main()
        {
            var input = ReadArray();
            var n = ReadNextInt(input, 0);
            var R = ReadNextInt(input, 1);
            var r = ReadNextInt(input, 2);
            var len = 2*Math.PI*(R - r);
            if(len >= 2 * r * n || (r == R && n == 1))
                Console.WriteLine("YES");
            else
            {
                Console.WriteLine("NO");
            }

        }
    }
}

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace Codeforces
{
    internal class Program
    {
        private static string Read()
        {
            return Console.ReadLine();
        }
        private static string[] ReadArray()
        {
            return Console.ReadLine().Split(' ');
        }
        private static int ReadInt()
        {
            return Int32.Parse(Console.ReadLine());
        }
        private static long ReadLong()
        {
            return long.Parse(Console.ReadLine());
        }
        private static int ReadNextInt(string[] input, int index)
        {
            return Int32.Parse(input[index]);
        }

        private static void Main()
        {
            var input = ReadArray();
            var n = ReadNextInt(input, 0);
            var rR = ReadNextInt(input, 1);
            var r = ReadNextInt(input, 2);
            if(r==rR && n == 1)
            {
                Console.WriteLine("YES");
                return;
            }
            if(r >= rR)
            {
                Console.WriteLine("NO");
                return;
            }
            var a = 2 * Math.Asin((double) r/(rR - r));
            if(a * n <= 2 * Math.PI)
                Console.WriteLine("YES");
            else
            {
                Console.WriteLine("NO");
            }

        }
    }
}

/*
 * Created by SharpDevelop.
 * User: zhe
 * Date: 2012/1/4
 * Time: 23:03
 *
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.IO;

namespace A_20120104
{
    class Program
    {
        static public double sqr(double x) {
            return x * x;
        }

        public static void Main(string[] args)
        {
            int n, bigR, smallR;
            string cmd = Console.ReadLine();
            string[] str = cmd.Split(" \t".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            n = int.Parse(str[0]);
            bigR = int.Parse(str[1]);
            smallR = int.Parse(str[2]);

            bool res = true;
            if (smallR > bigR) {
                res = false;
                if (n <= 0) res = true;
            } else {
                if (smallR == bigR) {
                    if (n <= 1) res = true; else res = false;
                } else {
                    int totn = 0;
                    if (Math.Abs(smallR * 1.0 / (bigR - smallR)) <= 1) {
                     double n0 = Math.PI / Math.Asin(smallR * 1.0 / (bigR - smallR));
                     if (n0 >= 0) totn += (int) Math.Floor(n0);
                    }
                    if (totn >= n) res = true; else res = false;
                }

            }
            if (res) Console.WriteLine("YES"); else Console.WriteLine("NO");
            Console.ReadLine();
        }

    }
}

/*
 * Created by SharpDevelop.
 * User: zhe
 * Date: 2012/1/4
 * Time: 23:03
 *
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.IO;

namespace A_20120104
{
    class Program
    {
        static public double sqr(double x) {
            return x * x;
        }

        public static void Main(string[] args)
        {
            int n, bigR, smallR;
            string cmd = Console.ReadLine();
            string[] str = cmd.Split(" \t".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            n = int.Parse(str[0]);
            bigR = int.Parse(str[1]);
            smallR = int.Parse(str[2]);

            bool res = true;
            if (smallR > bigR) {
                res = false;
                if (n <= 0) res = true;
            } else {
                if (smallR == bigR) {
                    if (n <= 1) res = true; else res = false;
                } else {

                    int totn = 0;
                    if (smallR * 2 > bigR) totn = 1; else {
                        if (Math.Abs(smallR * 1.0 / (bigR - smallR)) <= 1) {

                            double n0 = Math.PI / Math.Asin(smallR * 1.0 / (bigR - smallR));

                            if (n0 >= 0) totn += (int) Math.Floor(n0);

                        }
                    }
                    if (totn >= n) res = true; else res = false;
                }

            }
            if (res) Console.WriteLine("YES"); else Console.WriteLine("NO");
            Console.ReadLine();
        }

    }
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

class Solver
{
    public void Solve()
    {
        var ss = CF.ReadLine().Split(' ');
        int n = int.Parse(ss[0]);
        int R = int.Parse(ss[1]);
        int r = int.Parse(ss[2]);

        if (n == 1)
        {
            if( r>R)
                CF.WriteLine("NO");
            else
                CF.WriteLine("YES");
            return;
        }
        if (n == 2)
        {
            if (r*2 > R)
                CF.WriteLine("NO");
            else
                CF.WriteLine("YES");
            return;
        }

        var rad = Math.PI*n;
        if( r > (double)(R-r)*Math.Cos(rad) )
            CF.WriteLine("NO");
        else
            CF.WriteLine("YES");
    }

    //  test
    static Utils CF = new Utils(new[]{
@"
3 10 5
"
,

@"
4 10 4
"
,

@"
5 10 4
"
,
@"
1 10 10
"

    });
    #region test

    static void Main(string[] args)
    {
#if DEBUG
        for (int t=0;t<CF.TestCount;t++ )
        {
            CF.Test(t);
			var sw = new Stopwatch();
			sw.Start();
            new Solver().Solve();
			Debug.WriteLine("time: "+sw.ElapsedMilliseconds+ " ms");
		}
#else
        new Solver().Solve();
#endif
    }

    class Utils
    {
        public void Test(int t)
        {
            _lines = new List<string>();
            string[] ss = _test_input[t].Replace("\n", "").Split('\r');
            for (int i = 0; i < ss.Length; i++)
            {
                if (
                    (i == 0 || i == ss.Length - 1) &&
                    ss[i].Length == 0
                    )
                    continue;

                _lines.Add(ss[i]);
            }
        }

        public int TestCount
        {
            get
            {
                return _test_input.Length;
            }
        }

        public string ReadLine()
        {
#if DEBUG
            string s = null;
            if (_lines.Count > 0)
            {
                s = _lines[0];
                _lines.RemoveAt(0);
            }
            return s;

#else
            //return _sr.ReadLine();
        return Console.In.ReadLine();
#endif
        }

        public void WriteLine(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.WriteLine(o);
#else
            //_sw.WriteLine(o);
        Console.WriteLine(o);
#endif
        }

        public void Write(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.Write(o);
#else
                //_sw.Write(o);
        Console.Write(o);
#endif
        }

        string[] _test_input;

        List<string> _lines;

#if DEBUG
        public Utils(string[] test_input)
        {
            _test_input = test_input;
        }
#else

        public Utils(string[] dummy)
        {
            //_sr = new System.IO.StreamReader("input.txt");
            //_sw = new System.IO.StreamWriter("output.txt");
        }
#endif

    }

    #endregion
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

class Solver
{
    public void Solve()
    {
        var ss = CF.ReadLine().Split(' ');
        int n = int.Parse(ss[0]);
        int R = int.Parse(ss[1]);
        int r = int.Parse(ss[2]);

        if (n == 1)
        {
            if( r>R)
                CF.WriteLine("NO");
            else
                CF.WriteLine("YES");
            return;
        }
        if (n == 2)
        {
            if (r*2 > R)
                CF.WriteLine("NO");
            else
                CF.WriteLine("YES");
            return;
        }

        var rad = Math.PI/n;
        if( r > (double)(R-r)*Math.Sin(rad)  )
            CF.WriteLine("NO");
        else
            CF.WriteLine("YES");
    }

    //  test
    static Utils CF = new Utils(new[]{
@"
10 1000 237
"
,

@"
4 10 4
"
,

@"
5 10 4
"
,
@"
1 10 10
"

    });
    #region test

    static void Main(string[] args)
    {
#if DEBUG
        for (int t=0;t<CF.TestCount;t++ )
        {
            CF.Test(t);
			var sw = new Stopwatch();
			sw.Start();
            new Solver().Solve();
			Debug.WriteLine("time: "+sw.ElapsedMilliseconds+ " ms");
		}
#else
        new Solver().Solve();
#endif
    }

    class Utils
    {
        public void Test(int t)
        {
            _lines = new List<string>();
            string[] ss = _test_input[t].Replace("\n", "").Split('\r');
            for (int i = 0; i < ss.Length; i++)
            {
                if (
                    (i == 0 || i == ss.Length - 1) &&
                    ss[i].Length == 0
                    )
                    continue;

                _lines.Add(ss[i]);
            }
        }

        public int TestCount
        {
            get
            {
                return _test_input.Length;
            }
        }

        public string ReadLine()
        {
#if DEBUG
            string s = null;
            if (_lines.Count > 0)
            {
                s = _lines[0];
                _lines.RemoveAt(0);
            }
            return s;

#else
            //return _sr.ReadLine();
        return Console.In.ReadLine();
#endif
        }

        public void WriteLine(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.WriteLine(o);
#else
            //_sw.WriteLine(o);
        Console.WriteLine(o);
#endif
        }

        public void Write(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.Write(o);
#else
                //_sw.Write(o);
        Console.Write(o);
#endif
        }

        string[] _test_input;

        List<string> _lines;

#if DEBUG
        public Utils(string[] test_input)
        {
            _test_input = test_input;
        }
#else

        public Utils(string[] dummy)
        {
            //_sr = new System.IO.StreamReader("input.txt");
            //_sw = new System.IO.StreamWriter("output.txt");
        }
#endif

    }

    #endregion
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

class Solver
{
    public void Solve()
    {
        var ss = CF.ReadLine().Split(' ');
        int n = int.Parse(ss[0]);
        int R = int.Parse(ss[1]);
        int r = int.Parse(ss[2]);

        if (r > R - r)
        {
            CF.WriteLine("NO");
            return;
        }
        var rad = Math.Asin((double)r / (R - r));

        if( rad*2*n > Math.PI*2 )
            CF.WriteLine("NO");
        else
            CF.WriteLine("YES");
    }

    //  test
    static Utils CF = new Utils(new[]{
@"
1 10 11
"
,

@"
4 10 4
"
,

@"
5 10 4
"
,
@"
1 10 10
"

    });
    #region test

    static void Main(string[] args)
    {
#if DEBUG
        for (int t=0;t<CF.TestCount;t++ )
        {
            CF.Test(t);
			var sw = new Stopwatch();
			sw.Start();
            new Solver().Solve();
			Debug.WriteLine("time: "+sw.ElapsedMilliseconds+ " ms");
		}
#else
        new Solver().Solve();
#endif
    }

    class Utils
    {
        public void Test(int t)
        {
            _lines = new List<string>();
            string[] ss = _test_input[t].Replace("\n", "").Split('\r');
            for (int i = 0; i < ss.Length; i++)
            {
                if (
                    (i == 0 || i == ss.Length - 1) &&
                    ss[i].Length == 0
                    )
                    continue;

                _lines.Add(ss[i]);
            }
        }

        public int TestCount
        {
            get
            {
                return _test_input.Length;
            }
        }

        public string ReadLine()
        {
#if DEBUG
            string s = null;
            if (_lines.Count > 0)
            {
                s = _lines[0];
                _lines.RemoveAt(0);
            }
            return s;

#else
            //return _sr.ReadLine();
        return Console.In.ReadLine();
#endif
        }

        public void WriteLine(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.WriteLine(o);
#else
            //_sw.WriteLine(o);
        Console.WriteLine(o);
#endif
        }

        public void Write(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.Write(o);
#else
                //_sw.Write(o);
        Console.Write(o);
#endif
        }

        string[] _test_input;

        List<string> _lines;

#if DEBUG
        public Utils(string[] test_input)
        {
            _test_input = test_input;
        }
#else

        public Utils(string[] dummy)
        {
            //_sr = new System.IO.StreamReader("input.txt");
            //_sw = new System.IO.StreamWriter("output.txt");
        }
#endif

    }

    #endregion
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

class Solver
{
    public void Solve()
    {
        var ss = CF.ReadLine().Split(' ');
        int n = int.Parse(ss[0]);
        int R = int.Parse(ss[1]);
        int r = int.Parse(ss[2]);

        var rad = Math.Asin((double)r / (R - r));

        if( rad*2*n > Math.PI*2 )
            CF.WriteLine("NO");
        else
            CF.WriteLine("YES");
    }

    //  test
    static Utils CF = new Utils(new[]{
@"
4 10 4
"
,

@"
5 10 4
"
,
@"
1 10 10
"

    });
    #region test

    static void Main(string[] args)
    {
#if DEBUG
        for (int t=0;t<CF.TestCount;t++ )
        {
            CF.Test(t);
			var sw = new Stopwatch();
			sw.Start();
            new Solver().Solve();
			Debug.WriteLine("time: "+sw.ElapsedMilliseconds+ " ms");
		}
#else
        new Solver().Solve();
#endif
    }

    class Utils
    {
        public void Test(int t)
        {
            _lines = new List<string>();
            string[] ss = _test_input[t].Replace("\n", "").Split('\r');
            for (int i = 0; i < ss.Length; i++)
            {
                if (
                    (i == 0 || i == ss.Length - 1) &&
                    ss[i].Length == 0
                    )
                    continue;

                _lines.Add(ss[i]);
            }
        }

        public int TestCount
        {
            get
            {
                return _test_input.Length;
            }
        }

        public string ReadLine()
        {
#if DEBUG
            string s = null;
            if (_lines.Count > 0)
            {
                s = _lines[0];
                _lines.RemoveAt(0);
            }
            return s;

#else
            //return _sr.ReadLine();
        return Console.In.ReadLine();
#endif
        }

        public void WriteLine(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.WriteLine(o);
#else
            //_sw.WriteLine(o);
        Console.WriteLine(o);
#endif
        }

        public void Write(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.Write(o);
#else
                //_sw.Write(o);
        Console.Write(o);
#endif
        }

        string[] _test_input;

        List<string> _lines;

#if DEBUG
        public Utils(string[] test_input)
        {
            _test_input = test_input;
        }
#else

        public Utils(string[] dummy)
        {
            //_sr = new System.IO.StreamReader("input.txt");
            //_sw = new System.IO.StreamWriter("output.txt");
        }
#endif

    }

    #endregion
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

class Solver
{
    public void Solve()
    {
        var ss = CF.ReadLine().Split(' ');
        int n = int.Parse(ss[0]);
        int R = int.Parse(ss[1]);
        int r = int.Parse(ss[2]);

        if (n == 1)
        {
            if( r>R)
                CF.WriteLine("NO");
            else
                CF.WriteLine("YES");
            return;
        }
        if (n == 2)
        {
            if (r*2 > R)
                CF.WriteLine("NO");
            else
                CF.WriteLine("YES");
            return;
        }

        if (r > R - r)
        {
            CF.WriteLine("NO");
            return;
        }
        var rad = Math.Asin((double)r / (R - r));

        if( rad*2*n > Math.PI*2 )
            CF.WriteLine("NO");
        else
            CF.WriteLine("YES");
    }

    //  test
    static Utils CF = new Utils(new[]{
@"
3 10 5
"
,

@"
4 10 4
"
,

@"
5 10 4
"
,
@"
1 10 10
"

    });
    #region test

    static void Main(string[] args)
    {
#if DEBUG
        for (int t=0;t<CF.TestCount;t++ )
        {
            CF.Test(t);
			var sw = new Stopwatch();
			sw.Start();
            new Solver().Solve();
			Debug.WriteLine("time: "+sw.ElapsedMilliseconds+ " ms");
		}
#else
        new Solver().Solve();
#endif
    }

    class Utils
    {
        public void Test(int t)
        {
            _lines = new List<string>();
            string[] ss = _test_input[t].Replace("\n", "").Split('\r');
            for (int i = 0; i < ss.Length; i++)
            {
                if (
                    (i == 0 || i == ss.Length - 1) &&
                    ss[i].Length == 0
                    )
                    continue;

                _lines.Add(ss[i]);
            }
        }

        public int TestCount
        {
            get
            {
                return _test_input.Length;
            }
        }

        public string ReadLine()
        {
#if DEBUG
            string s = null;
            if (_lines.Count > 0)
            {
                s = _lines[0];
                _lines.RemoveAt(0);
            }
            return s;

#else
            //return _sr.ReadLine();
        return Console.In.ReadLine();
#endif
        }

        public void WriteLine(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.WriteLine(o);
#else
            //_sw.WriteLine(o);
        Console.WriteLine(o);
#endif
        }

        public void Write(object o)
        {
#if DEBUG
            System.Diagnostics.Trace.Write(o);
#else
                //_sw.Write(o);
        Console.Write(o);
#endif
        }

        string[] _test_input;

        List<string> _lines;

#if DEBUG
        public Utils(string[] test_input)
        {
            _test_input = test_input;
        }
#else

        public Utils(string[] dummy)
        {
            //_sr = new System.IO.StreamReader("input.txt");
            //_sw = new System.IO.StreamWriter("output.txt");
        }
#endif

    }

    #endregion
}

using System;
using System.Collections.Generic;

public class Programku
{
  public static void Main ( )
  {
    string line = Console.ReadLine ( );
    string[] aline = line.Split ( new char[] { ' ' } );
    int n = int.Parse ( aline[0] );
    int R = int.Parse ( aline[1] );
    int r = int.Parse ( aline[2] );
    int m = new Programku ( ).countmaxplate ( r, R );
    //Console.WriteLine ( m );
    if ( m >= n )
      Console.WriteLine ( "YES" );
    else
      Console.WriteLine ( "NO" );
  }

  public int countmaxplate ( int r, int R )
  {
    if ( r > R )
      return 0;
    if ( r == R )
      return 1;
    int RR = R;
    int circ = 0;
    while ( RR >= r )
    {
      if ( ( 2 * r ) > RR )
      {
        circ += 1;
      }
      else
      {
        double angle = 2 * Math.Asin ( ( double ) r / ( RR - r ) );
        int addcirc = ( int ) ( 2 * Math.PI / angle );
        circ += addcirc;
      }
      RR = RR - ( 2 * r );
    }
    return circ;
  }

}

using System;
using System.Collections.Generic;

public class Programku
{
  public static void Main ( )
  {
    string line = Console.ReadLine ( );
    string[] aline = line.Split ( new char[] { ' ' } );
    int n = int.Parse ( aline[0] );
    int R = int.Parse ( aline[1] );
    int r = int.Parse ( aline[2] );
    int m = new Programku ( ).countmaxplate ( r, R );
    //Console.WriteLine ( m );
    if ( m >= n )
      Console.WriteLine ( "YES" );
    else
      Console.WriteLine ( "NO" );
  }

  public int countmaxplate ( int r, int R )
  {
    if ( r > R )
      return 0;
    if ( r == R )
      return 1;
    int circ;
    if ( ( 2 * r ) > R )
    {
      circ = 1;
    }
    else
    {
      double angle = 2 * Math.Asin ( ( double ) r / ( R - r ) );
      circ = ( int ) ( 2 * Math.PI / angle );
    }
    return circ;
  }

}

using System;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Globalization;
using System.Collections.Generic;
using System.Threading;

namespace CodeForces
{
	internal class A
	{

		private void Solve()
		{
			int n = NextInt(), R = NextInt(), r = NextInt();
			if ( r > R )
			{
				Out.WriteLine( "NO" );
				return;
			}
			if ( r > R - r )
			{
				if ( n == 1 )
				{
					Out.WriteLine( "YES" );
					return;
				}
				else
				{
					Out.WriteLine( "NO" );
					return;
				}
			}
			if ( r == R - r )
			{
				if ( n <= 2 )
				{
					Out.WriteLine( "YES" );
					return;
				}
				else
				{
					Out.WriteLine( "NO" );
					return;
				}
			}

			double a = Math.Asin( r / ( R - r + 0.0 ) );

			if ( a < Math.PI / n + 1e-8 )
			{
				Out.WriteLine( "YES" );
				return;
			}
			else
			{
				Out.WriteLine( "NO" );
				return;
			}
		}

		#region Local wireup

		public int NextInt()
		{
			return _in.NextInt();
		}

		public long NextLong()
		{
			return _in.NextLong();
		}

		public string NextLine()
		{
			return _in.NextLine();
		}

		public double NextDouble()
		{
			return _in.NextDouble();
		}

		readonly Scanner _in = new Scanner();
		static readonly TextWriter Out = Console.Out;

		void Start()
		{
#if !ONLINE_JUDGE
			var timer = new Stopwatch();
			timer.Start();
#endif
			var t = new Thread( Solve, 64 * 1024 * 1024 );
			t.Start();
			t.Join();
#if !ONLINE_JUDGE
			timer.Stop();
			Console.WriteLine( string.Format( CultureInfo.InvariantCulture, "Done in {0} seconds.\nPress <Enter> to exit.", timer.ElapsedMilliseconds / 1000.0 ) );
			Console.ReadLine();
#endif
		}

		static void Main()
		{
			new A().Start();
		}

		class Scanner : IDisposable
		{
			#region Fields

			readonly TextReader _reader;
			readonly int _bufferSize;
			readonly bool _closeReader;
			readonly char[] _buffer;
			int _length, _pos;

			#endregion

			#region .ctors

			public Scanner( TextReader reader, int bufferSize, bool closeReader )
			{
				_reader = reader;
				_bufferSize = bufferSize;
				_closeReader = closeReader;
				_buffer = new char[_bufferSize];
				FillBuffer( false );
			}

			public Scanner( TextReader reader, bool closeReader ) : this( reader, 1 << 16, closeReader ) { }

			public Scanner( string fileName ) : this( new StreamReader( fileName, Encoding.Default ), true ) { }

#if ONLINE_JUDGE
                        public Scanner() : this( Console.In, false ) { }
#else
			public Scanner() : this( "input.txt" ) { }
#endif

			#endregion

			#region IDisposable Members

			public void Dispose()
			{
				if ( _closeReader )
				{
					_reader.Close();
				}
			}

			#endregion

			#region Properties

			public bool Eof
			{
				get
				{
					if ( _pos < _length ) return false;
					FillBuffer( false );
					return _pos >= _length;
				}
			}

			#endregion

			#region Methods

			private char NextChar()
			{
				if ( _pos < _length ) return _buffer[_pos++];
				FillBuffer( true );
				return _buffer[_pos++];
			}

			private char PeekNextChar()
			{
				if ( _pos < _length ) return _buffer[_pos];
				FillBuffer( true );
				return _buffer[_pos];
			}

			private void FillBuffer( bool throwOnEof )
			{
				_length = _reader.Read( _buffer, 0, _bufferSize );
				if ( throwOnEof && Eof )
				{
					throw new IOException( "Can't read beyond the end of file" );
				}
				_pos = 0;
			}

			public int NextInt()
			{
				var neg = false;
				int res = 0;
				SkipWhitespaces();
				if ( !Eof && PeekNextChar() == '-' )
				{
					neg = true;
					_pos++;
				}
				while ( !Eof && !IsWhitespace( PeekNextChar() ) )
				{
					var c = NextChar();
					if ( c < '0' || c > '9' ) throw new ArgumentException( "Illegal character" );
					res = 10 * res + c - '0';
				}
				return neg ? -res : res;
			}

			public long NextLong()
			{
				var neg = false;
				long res = 0;
				SkipWhitespaces();
				if ( !Eof && PeekNextChar() == '-' )
				{
					neg = true;
					_pos++;
				}
				while ( !Eof && !IsWhitespace( PeekNextChar() ) )
				{
					var c = NextChar();
					if ( c < '0' || c > '9' ) throw new ArgumentException( "Illegal character" );
					res = 10 * res + c - '0';
				}
				return neg ? -res : res;
			}

			public string NextLine()
			{
				SkipUntilNextLine();
				if ( Eof ) return "";
				var builder = new StringBuilder();
				while ( !Eof && !IsEndOfLine( PeekNextChar() ) )
				{
					builder.Append( NextChar() );
				}
				return builder.ToString();
			}

			public double NextDouble()
			{
				SkipWhitespaces();
				var builder = new StringBuilder();
				while ( !Eof && !IsWhitespace( PeekNextChar() ) )
				{
					builder.Append( NextChar() );
				}
				return double.Parse( builder.ToString(), CultureInfo.InvariantCulture );
			}

			private void SkipWhitespaces()
			{
				while ( !Eof && IsWhitespace( PeekNextChar() ) )
				{
					++_pos;
				}
			}

			private void SkipUntilNextLine()
			{
				while ( !Eof && IsEndOfLine( PeekNextChar() ) )
				{
					++_pos;
				}
			}

			private static bool IsWhitespace( char c )
			{
				return c == ' ' || c == '\t' || c == '\n' || c == '\r';
			}

			private static bool IsEndOfLine( char c )
			{
				return c == '\n' || c == '\r';
			}

			#endregion
		}

		#endregion
	}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace A
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int[] arr = s.Split(' ').Select(str => int.Parse(str)).ToArray();

            int n = arr[0];
            double R = arr[1];
            double r = arr[2];

            //double midle = 2.0 * Math.PI * (R - r);
            //int maxCount = (int)(midle / (2.0 * r));

            double alfa = Math.Asin(r / (R - r));
            int maxCount = int.MaxValue;

            if (alfa != 0)
            {
                maxCount = (int)(Math.PI / alfa);
            }

            bool onePlate = (n == 1 && r <= R);

            if (n <= maxCount || onePlate)
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace A
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int[] arr = s.Split(' ').Select(str => int.Parse(str)).ToArray();

            int n = arr[0];
            double R = arr[1];
            double r = arr[2];

            //double midle = 2.0 * Math.PI * (R - r);
            //int maxCount = (int)(midle / (2.0 * r));

            double alfa = Math.Asin(r / (R - r));
            int maxCount = int.MaxValue;

            if (Double.IsNaN(alfa))
            {
                maxCount = 0;
            }
            else if (alfa != 0)
            {
                maxCount = (int)(Math.PI / alfa);
            }

            bool onePlate = (n == 1 && r <= R);

            if (n <= maxCount || onePlate)
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace A
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int[] arr = s.Split(' ').Select(str => int.Parse(str)).ToArray();

            int n = arr[0];
            int R = arr[1];
            int r = arr[2];

            double midle = 2.0 * Math.PI * (R - r);
            int maxCount = (int)(midle / (2.0 * r));

            bool onePlate = (n == 1 && r <= R);

            if (n <= maxCount || onePlate)
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace A
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int[] arr = s.Split(' ').Select(str => int.Parse(str)).ToArray();

            int n = arr[0];
            double R = arr[1];
            double r = arr[2];

            //double midle = 2.0 * Math.PI * (R - r);
            //int maxCount = (int)(midle / (2.0 * r));

            double alfa = Math.Asin(r / (R - r)) * 2.0;
            int maxCount = int.MaxValue;

            if (Double.IsNaN(alfa))
            {
                maxCount = 0;
            }
            else if (alfa != 0)
            {
                maxCount = (int)(Math.PI / alfa);
            }

            bool onePlate = (n == 1 && r <= R);

            if (n <= maxCount || onePlate)
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }
        }
    }
}

using System;
using System.Collections.Generic;

class Scanner
{
    string[] s;
    int i;

    char[] cs = new char[] { ' ' };

    public Scanner()
    {
        s = new string[0];
        i = 0;
    }

    public string next()
    {
        if (i < s.Length) return s[i++];
        s = Console.ReadLine().Split(cs, StringSplitOptions.RemoveEmptyEntries);
        i = 0;
        return s[i++];
    }

    public int nextInt()
    {
        return int.Parse(next());
    }

    public long nextLong()
    {
        return long.Parse(next());
    }

}

class Myon
{
    Scanner cin;
    Myon() { }

    public static void Main()
    {
        new Myon().calc();
    }

    int h, w;
    string[] s;
    int[,] num;
    int[,] usedcount;
    int count;
    int prenum = 0;

    void calc()
    {
        Scanner cin = new Scanner();
        int n, R, r;
        n = cin.nextInt();
        R = cin.nextInt();
        r = cin.nextInt();
        if (R < r)
        {
            Console.WriteLine("NO");
            return;
        }
        else if (n == 1)
        {
            Console.WriteLine("YES");
            return;
        }
        else if (R < 2 * r)
        {
            Console.WriteLine("NO");
            return;
        }
        else if (R == 2 * r)
        {
            if (n <= 2) Console.WriteLine("YES");
            else Console.WriteLine("NO");
            return;
        }
        double length = r * (R / 2.0) / (R / 2.0 - r / 2.0);
        double len2 = Math.Sqrt(2 * (R / 2.0) * (R / 2.0) - 2 * (R / 2.0) * (R / 2.0) * Math.Cos(Math.PI * 2 / n));
        Console.WriteLine(length + " " + len2);
        if (length <= len2) Console.WriteLine("YES");
        else Console.WriteLine("NO");
        length = r * (R / 2.0) / (R / 2.0 - r / 2.0);
        len2 = Math.Sqrt(2 * (R / 2.0) * (R / 2.0) - 2 * (R / 2.0) * (R / 2.0) * Math.Cos((22.0 / 7.0) * 2 / n));
        Console.WriteLine(length + " " + len2);
        if (length <= len2) Console.WriteLine("YES");
        else Console.WriteLine("NO");
    }

}

using System;
using System.Collections.Generic;

class Scanner
{
    string[] s;
    int i;

    char[] cs = new char[] { ' ' };

    public Scanner()
    {
        s = new string[0];
        i = 0;
    }

    public string next()
    {
        if (i < s.Length) return s[i++];
        s = Console.ReadLine().Split(cs, StringSplitOptions.RemoveEmptyEntries);
        i = 0;
        return s[i++];
    }

    public int nextInt()
    {
        return int.Parse(next());
    }

    public long nextLong()
    {
        return long.Parse(next());
    }

}

class Myon
{
    Scanner cin;
    Myon() { }

    public static void Main()
    {
        new Myon().calc();
    }

    int h, w;
    string[] s;
    int[,] num;
    int[,] usedcount;
    int count;
    int prenum = 0;

    void calc()
    {
        Scanner cin = new Scanner();
        int n, R, r;
        n = cin.nextInt();
        R = cin.nextInt();
        r = cin.nextInt();
        if (R < r)
        {
            Console.WriteLine("NO");
            return;
        }
        else if (n == 1)
        {
            Console.WriteLine("YES");
            return;
        }
        else if (R < 2 * r)
        {
            Console.WriteLine("NO");
            return;
        }
        else if (R == 2 * r)
        {
            if (n <= 2) Console.WriteLine("YES");
            else Console.WriteLine("NO");
            return;
        }
        double length = r * (R / 2.0) / (R / 2.0 - r / 2.0);
        double len2 = Math.Sqrt(2 * (R / 2.0) * (R / 2.0) - 2 * (R / 2.0) * (R / 2.0) * Math.Cos(Math.PI * 2 / n));
        Console.WriteLine(length + " " + len2);
        if (length <= len2) Console.WriteLine("YES");
        else Console.WriteLine("NO");
    }

}

using System;
using System.Collections.Generic;

class Scanner
{
    string[] s;
    int i;

    char[] cs = new char[] { ' ' };

    public Scanner()
    {
        s = new string[0];
        i = 0;
    }

    public string next()
    {
        if (i < s.Length) return s[i++];
        s = Console.ReadLine().Split(cs, StringSplitOptions.RemoveEmptyEntries);
        i = 0;
        return s[i++];
    }

    public int nextInt()
    {
        return int.Parse(next());
    }

    public long nextLong()
    {
        return long.Parse(next());
    }

}

class Myon
{
    Scanner cin;
    Myon() { }

    public static void Main()
    {
        new Myon().calc();
    }

    int h, w;
    string[] s;
    int[,] num;
    int[,] usedcount;
    int count;
    int prenum = 0;

    void calc()
    {
        Scanner cin = new Scanner();
        int n, R, r;
        n = cin.nextInt();
        R = cin.nextInt();
        r = cin.nextInt();
        if (R < r)
        {
            Console.WriteLine("NO");
            return;
        }
        else if (R < 2 * r)
        {
            if (n == 1) Console.WriteLine("YES");
            else Console.WriteLine("NO");
            return;
        }
        else if (R == 2 * r)
        {
            if (n <= 2) Console.WriteLine("YES");
            else Console.WriteLine("NO");
            return;
        }
        double length = r * (R / 2.0) / (R / 2.0 - r / 2.0);
        double len2 = Math.Sqrt(2 * (R / 2.0) * (R / 2.0) - 2 * (R / 2.0) * (R / 2.0) * Math.Cos(Math.PI * 2 / n));
        //Console.WriteLine(length + " " + len2);
        if (length <= len2) Console.WriteLine("YES");
        else Console.WriteLine("NO");
    }

}

using System;
using System.Collections.Generic;

class Scanner
{
    string[] s;
    int i;

    char[] cs = new char[] { ' ' };

    public Scanner()
    {
        s = new string[0];
        i = 0;
    }

    public string next()
    {
        if (i < s.Length) return s[i++];
        s = Console.ReadLine().Split(cs, StringSplitOptions.RemoveEmptyEntries);
        i = 0;
        return s[i++];
    }

    public int nextInt()
    {
        return int.Parse(next());
    }

    public long nextLong()
    {
        return long.Parse(next());
    }

}

class Myon
{
    Scanner cin;
    Myon() { }

    public static void Main()
    {
        new Myon().calc();
    }

    int h, w;
    string[] s;
    int[,] num;
    int[,] usedcount;
    int count;
    int prenum = 0;

    void calc()
    {
        Scanner cin = new Scanner();
        int n, R, r;
        n = cin.nextInt();
        R = cin.nextInt();
        r = cin.nextInt();
        if (R < r)
        {
            Console.WriteLine("NO");
            return;
        }
        else if (R < 2 * r)
        {
            if (n == 1) Console.WriteLine("YES");
            else Console.WriteLine("NO");
            return;
        }
        else if (R == 2 * r)
        {
            if (n <= 2) Console.WriteLine("YES");
            else Console.WriteLine("NO");
            return;
        }
        double length = 2.0 * r * R / (R - r);
        double cos = (2.0 * Math.Pow(length, 2) - Math.Pow(R, 2)) / (2.0 * Math.Pow(length, 2));
        double turn = Math.Acos(cos);
        double ok = Math.PI  / turn;
        //Console.WriteLine(ok + " " + turn);
        if (ok >= n) Console.WriteLine("YES");
        else Console.WriteLine("NO");
    }

}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CF_100
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] ss = Console.ReadLine().Split(' ');
            int n = int.Parse(ss[0]);
            int R = int.Parse(ss[1]);
            int r = int.Parse(ss[2]);
            if (r > R)
            {
                Console.Write("NO");
                return;
            }
            if (2 * r > R)
            {
                if (n == 1 || n == 0)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }
            if (2 * r == R)
            {
                if (n <= 2)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }
            double need = Math.PI / n;
            double needsin = Math.Sin(need);
            double mysin = ((double)r) / (R - r);

            if (mysin <= needsin)
                Console.Write("YES");
            else
                Console.Write("NO");
            return;
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CF_100
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] ss = Console.ReadLine().Split(' ');
            int n = int.Parse(ss[0]);
            int R = int.Parse(ss[1]);
            int r = int.Parse(ss[2]);
            if (r > R)
            {
                Console.Write("NO");
                return;
            }
            if (2 * r > R)
            {
                if (n == 1 || n == 0)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }
            if (2 * r == R)
            {
                if (n <= 2)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }
            double need = 2 * Math.PI / n;
            double sinforradii = ((double)r) / (R - r);
            double angleforradii = Math.Asin(sinforradii) * 2;
            if (angleforradii <= need)
                Console.Write("YES");
            else
                Console.Write("NO");
            return;
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CF_100
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] ss = Console.ReadLine().Split(' ');
            int n = int.Parse(ss[0]);
            int R = int.Parse(ss[1]);
            int r = int.Parse(ss[2]);
            if (r > R)
            {
                Console.Write("NO");
                return;
            }
            if (2 * r > R)
            {
                if (n == 1 || n == 0)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }

            if (2 * r == R)
            {
                if (n <= 2)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }

            double need = Math.PI / n;
            double needsin = n > 1 ? Math.Sin(need) : 2;
            double mysin = ((double)r) / (R - r);

            if (mysin <= (needsin + 0.00001))
                Console.Write("YES");
            else
                Console.Write("NO");
            return;
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CF_100
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] ss = Console.ReadLine().Split(' ');
            int n = int.Parse(ss[0]);
            int R = int.Parse(ss[1]);
            int r = int.Parse(ss[2]);
            if (r > R)
            {
                Console.Write("NO");
                return;
            }
            if (2 * r > R)
            {
                if (n == 1 || n == 0)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }

            if (2 * r == R)
            {
                if (n <= 2)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }

            double need = Math.PI / n;
            double needsin = n > 1 ? Math.Sin(need) : 2;
            double mysin = ((double)r) / (R - r);

            if (mysin <= (needsin + 0.00000001))
                Console.Write("YES");
            else
                Console.Write("NO");
            return;
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CF_100
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] ss = Console.ReadLine().Split(' ');
            int n = int.Parse(ss[0]);
            int R = int.Parse(ss[1]);
            int r = int.Parse(ss[2]);
            if (r > R)
            {
                Console.Write("NO");
                return;
            }
            if (2 * r > R)
            {
                if (n == 1 || n == 0)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }

            if (2 * r == R)
            {
                if (n <= 2)
                    Console.Write("YES");
                else
                    Console.Write("NO");
                return;
            }

            double need = Math.PI / n;
            double needsin = n > 1 ? Math.Sin(need) : 2;
            double mysin = ((double)r) / (R - r);

            if (mysin <= needsin)
                Console.Write("YES");
            else
                Console.Write("NO");
            return;
        }
    }
}