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; 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;

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;
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;

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.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;
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;

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;
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.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.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.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;
        }
    }
}