pku 2545 Hamming Problem
和pku1338(Ugly Numbers)差不多。。。
#include <stdio.h>
#define MAXN 100001 //没10^8那么大...
typedef long long LL;
LL n,a,b,c,ugly[MAXN]={1};
inline LL Min(LL a,LL b){return a<b?a:b;}
void solve()
{
LL i,p1=0,p2=0,p3=0;
for(i=1;i<=n;i++) //注意开始位置,从1开始
{
ugly[i] = Min( ugly[p1]*a, Min(ugly[p2]*b, ugly[p3]*c));
if(ugly[i] == ugly[p1]*a) p1++;
if(ugly[i] == ugly[p2]*b) p2++;
if(ugly[i] == ugly[p3]*c) p3++;
}
printf("%I64d\n",ugly[n]);
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("tdata.txt","r",stdin);
#endif
while(scanf("%I64d %I64d %I64d %I64d",&a,&b,&c,&n)!=EOF) solve();
return 0;
}
浙公网安备 33010602011771号