/* -*- coding: utf-8 -*- * * 2309.cc: No.2309 [Cherry 5th Tune D] 夏の先取り - yukicoder */ #include #include using namespace std; /* constant */ /* typedef */ typedef long long ll; /* global variables */ /* subroutines */ ll calc(int a, int b, int c, int x, int y, int z, int ps[]) { ll sum = 0; for (int i = 0; i < 3; i++) { if (ps[i] == 0) { int d0 = min(a, b); sum += (ll)x * d0; a -= d0, b -= d0; } else if (ps[i] == 1) { int d1 = min(b, c); sum += (ll)y * d1; b -= d1, c -= d1; } else { int d2 = min(c, a); sum += (ll)z * d2; c -= d2, a -= d2; } } return sum; } /* main */ int main() { int tn; scanf("%d", &tn); while (tn--) { int a, b, c, x, y, z, w; scanf("%d%d%d%d%d%d%d", &a, &b, &c, &x, &y, &z, &w); ll maxsum = 0, sw = 0; while (a >= 0 && b >= 0 && c >= 0) { int ps[3] = { 0, 1, 2 }; do { maxsum = max(maxsum, sw + calc(a, b, c, x, y, z, ps)); } while (next_permutation(ps, ps + 3)); sw += w; a--, b--, c--; } printf("%lld\n", maxsum); } return 0; }