12325:Zombie's Treasure Chest

Zombie's Treasure Chest

#include<bits/stdc++.h>
using namespace std;
const int maxn = 50;
typedef long long ll;
ll n, s1, v1, s2, v2;

void swap(ll& a, ll& b){
    ll t = a;
    a = b;
    b = t;
}

ll cal(ll tn){
    ll v = 0;
    for(int i = 0; i <= tn; i++){
        ll tv = i*v1 + (n - i*s1)/s2*v2;
        v = max(v, tv);
    }
    return v;
}

int main()
{
    // freopen("data.in","r",stdin);
    // freopen("data.out","w",stdout);
    int T = 0;
    scanf("%d", &T);
    for(int t = 1; t <= T; t++){
        scanf("%lld%lld%lld%lld%lld", &n, &s1, &v1, &s2, &v2);
        ll tn = 0;
        if(min(n/s1, n/s2) < (v1*s2 > v2*s1 ? s1-1 : s2-1)){
            tn = n / max(s1, s2);
            if(s2 > s1){
                swap(s1, s2);
                swap(v1, v2);
            }
        }
        else{
            if(v1*s2 > v2*s1){
                tn = s1 - 1;
                swap(s1, s2);
                swap(v1, v2);
            }
            else tn = s2 - 1;
        }
        printf("Case #%d: %lld\n", t, cal(tn));
    }

    return 0;
}
posted @ 2019-01-13 23:17  ACLJW  阅读(168)  评论(0编辑  收藏  举报