#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
__int64 dp[100001];
__int64 min3(__int64 a,__int64 b,__int64 c)
{
a=min(a,b);
a=min(a,c);
return a;
}
int main()
{
__int64 a,b,c,d;
while(scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&d)!=EOF)
{
dp[0]=1;
__int64 aa=0,bb=0,cc=0;
__int64 aaa,bbb,ccc;
for(__int64 i=1;i<=d;i++)
{
dp[i]=min3(aaa=dp[aa]*a,bbb=dp[bb]*b,ccc=dp[cc]*c);
if(dp[i]==aaa)
aa++;
if(dp[i]==bbb)
bb++;
if(dp[i]==ccc)
cc++;
}
printf("%I64d\n",dp[d]);
}
}
hdu 3199 简单dp
最新推荐文章于 2021-07-27 21:50:39 发布