UVA12325Zombie'sTreasureChest

来源:互联网 发布:卖家网是淘宝的吗 编辑:程序博客网 时间:2024/06/05 23:46
//UVA12325Zombie'sTreasureChest#include<cstdio>#include<cstring>const int minbound = 1e3;typedef long long LL;int main() {int T;scanf("%d", &T);LL n, s1, v1, s2, v2;int kase = 0;///freopen("UVA12325out.txt", "w", stdout);while(T--){scanf("%lld%lld%lld%lld%lld", &n, &s1, &v1, &s2, &v2);        LL n1 = n / s1, n2 = n / s2;        LL ans = 0;if(n2 >= n1 && n2 < minbound) {///枚举第一个         for(LL i = 0; i <= n1; i++) {                LL tmp = i * v1;        LL j = (n - i * s1) / s2;        if(j < 0) break;tmp += j * v2;ans = ans > tmp ? ans : tmp;}}else if(n2 < n1 && n1 < minbound){//枚举第二个 for(LL i = 0; i <= n2; i++) {LL tmp = i * v2;LL j = (n - i * s2) / s1;if(j < 0) break;tmp += j * v1;ans = ans > tmp ? ans : tmp; }}else {LL va1 = s1 * v2, va2 = s2 * v1;LL tmp = 0;if(va1 > va2) {//枚举s2-1个v1 for(LL i = 0; i < s2; i++) {tmp = i * v1;LL j = (n - i * s1) / s2;if(j < 0) break;tmp += j * v2;ans = ans > tmp ? ans : tmp;} }else {//枚举s1-1个v2 for(LL i = 0; i < s1; i++) {tmp = i * v2;LL j = (n - i * s2) / s1;//printf("i = %lld, j = %lld, n2 = %lld\n", i, j, n2);if(j < 0) break;tmp += j * v1;ans = ans > tmp ? ans : tmp;//printf("ans = %lld, tmp = %lld\n", ans, tmp);}}}printf("Case #%d: %lld\n", ++kase, ans); } return 0;}/*2100 1 1 2 2100 34 34 5 3*/

原创粉丝点击