#include double mocnina(double a,int n) { double * temp=new double[20]; double * end(temp + 20); temp[0]=a; double * tmp(temp); for (double * pnter(temp+1);pnter!=end;++pnter,++tmp) *pnter=(*tmp)*(*tmp); int exp(1024*512); double res(1); while(n) { if (n >=exp) { n -= exp; res *= *tmp; } else { --tmp; exp/=2; } } return res; } int main() { int X,Y,N; double r; while( true ) { scanf( "%i %i %i %lf", &X,&Y,&N,&r); if( X == 0 && Y == 0 && N == 0 && r == 0 ) break; if (r==0) { if( X > Y*N*12 ) printf( "NO\n" ); else printf( "YES\n" ); } else { r=1+(r / 1200); double rn(mocnina(r,N*12)); double rest(X); double y(Y); // all double from now if( rest*rn > y*(rn-1)/(r-1) ) printf( "NO\n" ); else printf( "YES\n" ); } } return 0; }