dfs 记忆化
//没找到问题,求改正
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int w[105],t[105][105];
int v[] = { 0,6,8,12,0 };
int m, n, i, j, d, x, y, k, ans1, ans2;
int b[1000];
int dfs(int x, int k,int n)
{
if (k >= m)return n;
if (x ==4)return n;
int ans = 0x3f3f3f3f;
if (t[x][k])return t[x][k];
for (int i = v[x];i<= m;i+= v[x])ans = min(ans, dfs(x + 1, k + i, n + w[x] * i / v[x]));
t[x][k] = ans;
return ans;
}
int main()
{
for (int i = 1;i <= 3;i++)
{
cin >> w[i];
}
cin >> m;
cout <<dfs(1, 0, 0);
}