股票问题

该博客介绍了胡师傅根据‘波浪理论’分析股票的方法。他提出股市的风向标是连续涨的天数与波段涨幅乘积的最大值。程序需要计算在所有波段中风向标的最大值,输入为天数和每天的大盘指数,输出为最大风向标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

股票问题
Description
有个姓胡的师傅,工作之余喜欢炒股,而且还小有暂获。胡师傅通过长期的观察,发现了股票有点小规律,他把自己发现的规律叫做“波浪理论”,通俗地说,股票是一波一波好像大海里的波浪一样的,有涨有跌,跌跌涨涨的,每一波的涨幅和跌幅也有不同,在这里我们规定一个波段指的是连续涨或者连续跌,如果连续两天出现大盘指数一样时,可以算涨(在涨的波段内算涨),也可以算跌(在跌的波段内算跌),胡师傅认为刻画股市是不是“牛”,要看连续涨的天数和波段涨幅的乘积的大小,他把这个大小的值戏称为股市的风向标,请你帮胡师傅写个程序,算一算在所有的一波一波的波段中风向标最大值是多少。

Input
本问题有多组测试数据,每一组共有二行,第一行是天数n(1<=n<=100000),表示股票大盘指数是按天计算的,一天一个指数;第二行是n个整数,表示每天的大盘指数的值,范围是1和10000之间。

Output
对于每组测试数据,输出只有一行,即在所有的一波一波的波段中风向标的最大值。

Sample Input
6
2000 1900 2100 2300 2700 2500
Sample Output
2400

#include<bits/stdc++.h>
using namespace std;
int a[100002];
int main()
{
	int n,mx,i,f,t;
	while(cin>>n)
	{
		mx=-999999999;
		for(i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
		}
		f=t=1;
		a[n+1]=0;
		for(i=1;i<=n;i++)
		{
			if(a[i]<=a[i+1])
			{
				t++;
			}
			else
			{
				if(mx<(a[t]-a[f])*(t-f))
				{
					mx=(a[t]-a[f])*(t-f);
				}
				f=i+1;
				t=i+1;
			}
		}
		cout<<mx<<endl;
	}
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值