NYOJ 739 笨蛋难题四
2015-11-25 18:54
344 查看
笨蛋难题四
时间限制: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
看了半天没看懂,其实就是给n个数,然后找a[j]-a[i]的最大值,其中i<j,思路和以前做的一道题一样,详情请看:
点击打开链接
ac代码:
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #define MAXN 100010 #define fab(a) (a)>0?(a):(-a) #define INF 0xfffffff #define LL long long using namespace std; int num[MAXN]; int pri[MAXN]; int main() { int t,i,n; while(scanf("%d",&n)!=EOF) { scanf("%d",&num[1]); int k=1; memset(pri,0,sizeof(pri)); pri[1]=1; for(i=2;i<=n;i++) { scanf("%d",&num[i]); if(num[i]<=num[k]) { k=i; } else { if(pri[k]) { if(num[i]>num[pri[k]]) pri[k]=i; } else pri[k]=i; } } int M=-1; for(i=1;i<n;i++) M=max(M,num[pri[i]]-num[i]); printf("%d\n",M); } return 0; }
相关文章推荐
- 自定义UIButton
- Spring MVC+JSP实现三级联动
- iOS app调用相机和相册
- 带宽
- 包含继承关系的Java程序执行顺序(代码实例)
- 二叉树
- HDU 1156 Color the ball (线段树 区间更新)
- Exception:MappingException: Unknown entity 解决办法
- Js实现select联动,option从数据库中读取
- C# 上传下载ftp(支持断点续传)
- Android View学习相关和设置监听器的方法
- Java基础<十二>-----集合
- C# 上传下载ftp(支持断点续传)
- Android实战技巧:数据存储方式
- Gatling-基于Scala,Akka&Netty的性能测试框架
- 矩阵键盘总结
- 雷军的哽咽:致小米终将逝去的青春
- 实现部分库函数
- 设计模式(四)单例模式
- android之interpolator的用法详解