/***************************************** Author :Crazy_AC(JamesQi) Time :2015 File Name : 思路:分情况贪心; 1.N/S1 < max_num; 2.N/S2 < max_num; 3.S1,S2都非常小的时候就要比较S1 * V2 与 S2 * V1的大小了 注意,如果用一般的贪心做法会超时的; *****************************************/ // #pragma comment(linker, "/STACK:1024000000,1024000000") #include <iostream> #include <algorithm> #include <iomanip> #include <sstream> #include <string> #include <stack> #include <queue> #include <deque> #include <vector> #include <map> #include <set> #include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> #include <limits.h> using namespace std; #define MEM(a,b) memset(a,b,sizeof a) #define pk push_back template<class T> inline T Get_Max(const T&a,const T&b){return a < b?b:a;} template<class T> inline T Get_Min(const T&a,const T&b){return a < b?a:b;} typedef long long LL; typedef pair<int,int> ii; const int inf = 1 << 30; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 7; LL n,V1,S1,V2,S2; const int max_num = 5000; LL solve(int choise){ LL MAX = -1; if (choise == 0){ for (LL i = 0;i * S1 <= n;++i){ LL tmp = n - i * S1; LL ans = tmp / S2 * V2 + i * V1; MAX = Get_Max(MAX,ans); } } else if (choise == 1){ for (LL i = 0;i * S2 <= n;++i){ LL tmp = n - i * S2; LL ans = tmp / S1 * V1 + i * V2; MAX = Get_Max(MAX,ans); } } else{ LL sum1 = S2 * V1; LL sum2 = S1 * V2; if (sum1 > sum2){ for (LL i = 0;i < S1;++i){ LL tmp = n - i * S2; LL ans = tmp / S1 * V1 + i * V2; MAX = Get_Max(MAX,ans); } } else{ for (LL i = 0;i < S2;++i){ LL tmp = n - i * S1; LL ans = tmp / S2 * V2 + i * V1; MAX = Get_Max(MAX,ans); } } } return MAX; } int main() { // ios::sync_with_stdio(false); // freopen("in.txt","r",stdin); // freopen("out.txt","w",stdout); int kase = 0; int T; // cin >> T; scanf("%d",&T); while(T--){ // cin >> n >> S1 >> V1 >> S2 >> V2; scanf("%lld%lld%lld%lld%lld",&n,&S1,&V1,&S2,&V2); LL ans; if ((n / S1) < max_num) ans = solve(0); else if ((n / S2) < max_num) ans = solve(1); else ans = solve(2); // cout << "Case #" << ++kase << ": "; // cout << ans << '\n'; printf("Case #%d: %lld\n",++kase,ans); } return 0; }