南邮 OJ 1972 炒股票的女巫璐璐

炒股票的女巫璐璐

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 702            测试通过 : 48 

比赛描述

女巫璐璐生活在美丽的仙林。璐璐突发奇想想到了炒股。璐璐运用了她的神奇魔法获取了一支股票未来连续N天的价格。

璐璐现在想知道从这N天里,哪天买入,哪天卖出可以使自己自己的收益最大。




输入

输入第一行是一个整数T,代表测试用例个数。接下来的每组数据第一行为一个整数N(2N100000),代表这支股票未来N天的价格,第二行为N个整数a1,a2,..aN


输出

输出璐璐能得到的最大收益。如果璐璐无论怎么买入卖出都不能赚钱(收益大于0),输出0

输出格式见样例,首先输出Case #: ,再输出答案,其中#表示第几个测试用例。


样例输入

3
3
3 2 1
3
1 2 3
3
2 3 1

样例输出

Case 1: 0
Case 2: 2
Case 3: 1

题目来源

XXP





/* 140MS
#include<iostream>

int main(){
	int t,n,i,a,min_val,max_income;
	scanf("%d",&t);
	for(i=0;i<t;i++){
		scanf("%d",&n);
		min_val = INT_MAX;
		max_income = 0;
		while(n--){
			scanf("%d",&a);
			if(a<min_val){
				min_val = a;
			}else if(max_income < a-min_val){
				max_income = a-min_val;
			}
		}
		printf("Case %d: %d\n",i+1,max_income);
	}
}
*/

// 15MS
#include<iostream>

int main(){
	int t,n,i,a,min_val,max_income;
	char c;
//	scanf("%d",&t);
//	while((c=getchar())<'0' || c>'9');
	t = 0;
	while((c=getchar())>='0' && c<='9'){
		t = t*10+c-'0';
	}
	for(i=0;i<t;i++){
//		scanf("%d",&n);
//		while((c=getchar())<'0' || c>'9');
		n = 0;
		while((c=getchar())>='0' && c<='9'){
			n = n*10+c-'0';
		}
		min_val = INT_MAX;
		max_income = 0;
		while(n--){
//			scanf("%d",&a);
//			while((c=getchar())<'0' || c>'9');
			a = 0;
			while((c=getchar())>='0' && c<='9'){
				a = a*10+c-'0';
			}
			if(a<min_val){
				min_val = a;
			}else if(max_income < a-min_val){
				max_income = a-min_val;
			}
		}
		printf("Case %d: %d\n",i+1,max_income);
	}
}


你可能感兴趣的:(ACM,南邮OJ,炒股票的女巫璐璐)