分类枚举 分类的依据的常数玄学设?
#include<bits/stdc++.h>
using namespace std;
const int maxn=10000;
int main(){
int t;
int kase=0;
scanf("%d",&t);
while(t--){
long long n,s1,v1,s2,v2;
scanf("%lld%lld%lld%lld%lld",&n,&s1,&v1,&s2,&v2);
if(s1>s2){
swap(s1,s2);
swap(v1,v2);
}
long long ans=0;
if(n/s2>maxn){
for(long long i=0;i<=s1;i++){
ans=max(ans,i*v2+(n-i*s2)/s1*v1);
}
for(long long i=0;i<=s2;i++)
ans=max(ans,i*v1+(n-i*s1)/s2*v2);
}
else {
for(long long i=0;i<=n/s2;i++){
ans=max(ans,i*v2+(n-i*s2)/s1*v1);
}
}
printf("Case #%d: %lld\n", ++kase, ans);
}
return 0;
}