#include #include using namespace std; int table[151][101][51]; int solve(int C, int ones_left, int fives_left, int tens_left) { if(!C) return 0; int mincoins = INT_MAX; if(table[C][fives_left][tens_left]) return table[C][fives_left][tens_left]; if(fives_left >= 2) mincoins = min(mincoins, solve(C-1, ones_left+2, fives_left-2, tens_left) + 2); if(tens_left >= 1) mincoins = min(mincoins, solve(C-1, ones_left+2, fives_left, tens_left-1) + 1); if(fives_left >= 1 && ones_left >= 3) mincoins = min(mincoins, solve(C-1, ones_left-3, fives_left-1, tens_left) + 4); if(tens_left >= 1 && ones_left >= 3) mincoins = min(mincoins, solve(C-1, ones_left-3, fives_left+1, tens_left-1) + 4); if(ones_left >= 8) mincoins = min(mincoins, solve(C-1, ones_left-8, fives_left, tens_left) + 8); table[C][fives_left][tens_left] = mincoins; return mincoins; } int main() { int T; cin >> T; for(int i = 0; i < T; i++) { int C, ones, fives, tens; cin >> C >> ones >> fives >> tens; for(int j = 1; j <= 150; j++) { for(int k = 0; k <= 100; k++) { for(int p = 0; p <= 50; p++) table[j][k][p] = 0; } } cout << solve(C, ones, fives, tens) << endl; } return 0; }