#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int (i)=(0);(i)<(int)(n);++(i))
using ll = long long;
using namespace std;

#define INF ((1<<30)-1)
#define LLINF (1LL<<60)
#define EPS (1e-10)

int main() {
    ll a, b, c, d, e;
    while (cin >> a >> b >> c >> d >> e) {
        if (a == b and b == c and c == d and d == e and a == 0) break;
        ll na, nb, nc;
        cin >> na >> nb >> nc;

        // 新作の値段は，制約よりEより高いので，新作はセットにするほうが良い
        if (nc >= d) {
            // 新作すべてをセットにして，d本以上にする場合
            // それ以外のをセットにしてしまうと，制約より旧作，準新作の値段よりeのほうが高いのでやらないほうが良い
            ll ans = a * na + b * nb + e * nc;
            cout << ans << endl;
        }
        else {
            // dの本数が小さい場合のみ，加えた方が良いかというのを準新作のほうから見ていく？

            ll ans = a * na + b * nb;
            if (nc > 0) ans += d * e;
            //cout << ans << endl;

            ll tmpd = d - nc;

            ll tmpb = nb, tmpa = na, cnt = nc;
            while (true) {
                // セットに含める
                if (tmpb > 0) {
                    tmpb--;
                    tmpd--;
                    ++cnt;
                }
                else if (tmpa > 0) {
                    tmpa--;
                    tmpd--;
                    cnt++;
                }
                else {
                    if (tmpd > 0) {
                        if (ans > d * e) {
                            ans = d * e;
                        }
                    }
                    else {
                        if (ans > cnt * e) {
                            ans = cnt * e;
                        }
                    }
                    break;
                }

                if (tmpd > 0) {
                    if (ans > a * tmpa + b * tmpb + d * e) {
                        ans = a * tmpa + b * tmpb + d * e;
                    }
                }
                else {
                    if (ans > a * tmpa + b * tmpb + cnt * e) {
                        ans = a * tmpa + b * tmpb + cnt * e;
                    }
                }
            }

            cout << min(a * na + b * nb + c * nc, ans) << endl;
        }
    }
}

