nyoj739 笨蛋难题四 类RMQ

笨蛋难题四

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 3
描述

这些日子笨蛋一直研究股票,经过调研,终于发现xxx公司股票规律,更可喜的是 笨蛋推算出这家公司每天的股价,为了防止别人发现他的秘密。他决定对于这家公司的 股票最多买一次,现在笨蛋已经将股票价格列了出来。(这已经不是笨蛋的难题了,他已经解决 呵 呵)。只想难为难为你呀,从股票价格表上,你能算出笨蛋的每股股票最多能赚多少钱吗?
                 

输入
第一行一个n,表示n天(小于100000)
第二行 给出n天每股的价格
输出
每股最多赚多少钱
样例输入
4
947 267 359 771
7
669 735 322 794 397 565 181  
样例输出
504
472
来源
#include<stdio.h>
int main()
{
	int day;
	while(scanf("%d",&day)!=EOF)
	{
		int max=0,s,sum=0;
		int temp,now;
		scanf("%d",&temp);
		day--;
		while(day--)
		{
			scanf("%d",&now);
			s=now-temp;//记录后一项与前一项的差 可能是正数,可能是负数 
			if(sum<0)
			sum=s;
			else
			sum=sum+s;
			//sum<0?sum=s:sum+=s;//当sum小于0时,把s的值重新赋值给sum不然的话继续求和 
			if(max<sum)
			max=sum;
			//比较,把最大项的值赋值给max 
			temp=now;//为下次循环做准备 
		}
		printf("%d\n",max);//输出最大项,即每股最多赚多少钱
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/cao2219600/article/details/79919237
RMQ