#include<stdio.h>
#include<stdlib.h>
unsigned int min(unsigned int a, unsigned int b, unsigned int c)
{
if(a<b && a<c)
return a;
else if(b<c)
return b;
else
return c;
}
unsigned int nthUgly(unsigned int n)
{
unsigned int dp[n]; // To store ugly numbers
unsigned int p2 = 0, p3 = 0, p5 = 0;
unsigned int next_ugly;
dp[0] = 1;
for (int i=1; i<n; i++)
{
next_ugly = min(dp[p2] * 2, dp[p3] * 3, dp[p5] * 5);
dp[i] = next_ugly;
if (next_ugly == dp[p2]*2)
p2 = p2+1;
if(next_ugly == dp[p3]*3)
p3 = p3+1;
if(next_ugly == dp[p5]*5)
p5 = p5+1;
}
return next_ugly;
}
int main()
{
unsigned int n;
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+Cgp1bnNpZ25lZCBpbnQgbWluKHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYiwgdW5zaWduZWQgaW50IGMpCnsKCWlmKGE8YiAmJiBhPGMpCgkJcmV0dXJuIGE7CgllbHNlIGlmKGI8YykKCQlyZXR1cm4gYjsKCWVsc2UKCQlyZXR1cm4gYzsKfQoKdW5zaWduZWQgaW50IG50aFVnbHkodW5zaWduZWQgaW50IG4pIAp7IAogICAgdW5zaWduZWQgaW50IGRwW25dOyAvLyBUbyBzdG9yZSB1Z2x5IG51bWJlcnMgCiAgICB1bnNpZ25lZCBpbnQgcDIgPSAwLCBwMyA9IDAsIHA1ID0gMDsKICAgIHVuc2lnbmVkIGludCBuZXh0X3VnbHk7CiAgCiAgICBkcFswXSA9IDE7IAogICAgZm9yIChpbnQgaT0xOyBpPG47IGkrKykgCiAgICB7IAoJCW5leHRfdWdseSA9IG1pbihkcFtwMl0gKiAyLCBkcFtwM10gKiAzLCBkcFtwNV0gKiA1KTsgCgkJZHBbaV0gPSBuZXh0X3VnbHk7IAoJCWlmIChuZXh0X3VnbHkgPT0gZHBbcDJdKjIpCgkJCXAyID0gcDIrMTsgCgkJaWYobmV4dF91Z2x5ID09IGRwW3AzXSozKQoJCQlwMyA9IHAzKzE7CgkJaWYobmV4dF91Z2x5ID09IGRwW3A1XSo1KQoJCQlwNSA9IHA1KzE7CiAgICB9IAogICAgcmV0dXJuIG5leHRfdWdseTsgCn0gCiAgCgppbnQgbWFpbigpIAp7IAogICAgdW5zaWduZWQgaW50IG47CiAgICBzY2FuZigiJWQiLCAmbik7CiAgICBwcmludGYoIiVkIiwgbnRoVWdseShuKSk7IAogICAgcmV0dXJuIDA7IAp9