1477: 赚钱
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 31 Solved: 9
[ Submit][ Status][ Web Board]
Description
来自F星球的Carol是一个不折不扣的“正版游戏受害者”,在黑色星期五的疯狂购买后,钱包渐空的Carol突然发现TA所使用的游戏交易平台上有个值得留意的地方————集换式卡牌。 集换式卡牌是可以买卖的,卖家和买家都来自社区。由于社区的每个人都可以随时发出新的购买请求,一张热门卡牌的报价甚至每个小时都是不一样的。 F星球的居民每个人都有一些特殊技能,而Carol的技能则是预知未来12小时内要发生的所有“静态事件”,这个“静态事件”当然也包含了某张集换式卡牌12小时内的买家最高报价。而Carol要做的就是规划好这12小时,在低价时买入,高价时卖出,以赚差价填回自己的钱包。 Carol现在手头并没有卡,所以他只能通过买入来获得卡。为了展现自己不滥用特殊技能,Carol决定每次购买只买入一张卡,卖出则不限制数量。但是由于智商有限,Carol并不知道他应该在什么时候买入什么时候卖出,于是他请求你来帮忙。而得知他在滥用特殊技能的你自然不打算帮他,于是你打算只告诉他最多能赚多少。那么请问他最多可以赚多少钱?
Input
输入的第一行给定一个整数T,表示样例数量,接下来每行12个整数c1,c2...c12(1<= c1,c2,c3....<=1000),表示十二小时内某张集换式卡牌的报价。
Output
对于每组样例,均输出一行,表示该12小时内能够获得的最大收益。
Sample Input
2
1 1 1 1 1 1 1 1 1 1 1 2
1 2 3 4 5 6 7 8 9 9 9 10
Sample Output
11
47
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--){
int a[12];
int sum1=0;
int b[11]={0};
for(int i=0;i<12;i++){
cin>>a[i];
}
for(int i=0;i<11;i++){
for(int j=i+1;j<12;j++){
if(a[j]-a[i]>b[i])b[i]=a[j]-a[i];
}
}
int n1=0;
for(int i=0;i<11;i++){
n1+=b[i];
}
printf("%d\n",n1);
}
return 0;
}