Given 4 numbers A,B,C and D. If A ^ B > C ^ D print "YES" otherwise, print "NO".
Input : Only one line containing 4 numbers A,B,C and D (1 ≤ A,C ≤ 10^7 ) , (1 ≤ B,D ≤ 10^12 )
Output : Print "YES" or "NO" according to the problem above.
Problem Link — Here
I think I have to mod this. But what's the real approach?
TIA.
Take log on both sides. Check for b*log(a) > d*log(c).Submission link : 92842700
Didn't get you, can you please explain, if you don't mind
Generally, Log(a^b) is b*Log(a). The log of a larger number will be greater than the log of a smaller number. Taking Logarithm allows comparing larger numbers.
Translation of the expression A^B to log(A^B) is just scaling the expression while maintaining the proportion. So the comparison less than or greater than still works.
Remember that the logarithm is like asking for a number that need to be the power of other number to be equal to something: log(a^b) = y
SUM PROPERTY
You need to first need to understand: log(A*B) = log(A) + log(B)
Let's say:
--> X = logb(M)
--> Y = logb(N)
Then:
b^X = M
b^Y = N
Then:
M*N = b^X * b^Y = b^(X+Y)
Logarithm in both sides:
logb(M*N) = logb(b^(X+Y)) // Here both bases cancel each other. Example: log10(10) == 1
So we ended up with: logb(M*N) = X + Y
Then just rewrite X and Y: logb(M*N) = logb(M) + logb(N)
The next steps are easy:
log(A*A) = log(A) + log(A) = log(A^2)
A^3 = A*A*A
log(A*A*A) = log(A) + log(A) + log(A) = log(A^3) = 3 * log(A)
So log(A^B) = B * log(A)