#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <functional>
#include <numeric>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <utility>
#include <sstream>
#include <complex>
#include <fstream>

using namespace std;

#define FOR(i,a,b) for(long long i=(a);i<(b);i++)
#define REP(i,N) for(long long i=0;i<(N);i++)
#define ALL(s) (s).begin(),(s).end()
#define fi first
#define se second

#define PI acos(-1.0)
#define INF 1000000007
#define MOD 1000000007
#define EPS 1e-10
#define MAX_N 100100
#define MAX_M 100100

typedef long long ll;
typedef pair<ll, ll> P;
typedef pair<double, double> PD;
typedef pair<string, ll> PS;
typedef vector<ll> V;
typedef pair<P, char> PC;
typedef pair<ll, string> PLS;

ll a, b, c, d, e;
ll na, nb, nc;

int main(){
	while (cin >> a >> b >> c >> d >> e&&a + b + c + d + e){
		cin >> na >> nb >> nc;
		ll ans = a*na + b*nb + c*nc;
		if (na + nb + nc < d){
			ans = min(ans, d*e);
		}
		else{
			if (nc >= d){
				ans = e*nc + b*nb + a*na;
			}
			else if (nc + nb >= d){
				ans = min(ans, d*e + (nc + nb - d)*b + a*na);
			}
			else if (nc + nb + na >= d){
				ans = min(ans, d*e + (nc + nb + na - d)*a);
			}
		}
		cout << ans << endl;
	}
}