#include <list> #include <map> #include <set> #include <deque> #include <stack> #include <queue> #include <algorithm> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <memory.h> #include <ctime> #include <bitset> #include <unordered_map> using namespace std; #define ABS(a) ((a>0)?a:-(a)) #define MIN(a,b) ((a<b)?(a):(b)) #define MAX(a,b) ((a<b)?(b):(a)) #define FOR(i,a,n) for (int i=(a);i<(n);++i) #define FI(i,n) for (int i=0; i<(n); ++i) #define pnt pair <int, int> #define mp make_pair #define PI 3.1415926535897 #define MEMS(a,b) memset(a,b,sizeof(a)) #define LL long long #define U unsigned LL dp[10010]; int main() { #ifdef Fcdkbear freopen("in.txt", "r", stdin); double beg = clock(); //freopen("out.txt", "w", stdout); #endif int t; cin >> t; while (t--) { LL n; int a, b, c; cin >> n >> a >> b >> c; if (n == 1) { cout << 0 << endl; } else { dp[0] = 1; FOR(i, 1, 10010) { dp[i] = 0; if (i >= a) dp[i] += dp[i - a]; if (i >= b) dp[i] += dp[i - b]; if (i >= c) dp[i] += dp[i - c]; if (dp[i] >= n) { cout << i << endl; break; } dp[i] = MAX(dp[i], dp[i - 1]); } } } #ifdef Fcdkbear double end = clock(); fprintf(stderr, "*** Total time = %.3lf ***\n", (end - beg) / CLOCKS_PER_SEC); #endif return 0; }