nyoj739_笨蛋难题四
笨蛋难题四
时间限制: 1000 ms | 内存限制:65535 KB
难度: 3
这些日子笨蛋一直研究股票,经过调研,终于发现xxx公司股票规律,更可喜的是 笨蛋推算出这家公司每天的股价,为了防止别人发现他的秘密。他决定对于这家公司的 股票最多买一次,现在笨蛋已经将股票价格列了出来。(这已经不是笨蛋的难题了,他已经解决 呵 呵)。只想难为难为你呀,从股票价格表上,你能算出笨蛋的每股股票最多能赚多少钱吗?
第二行 给出n天每股的价格 </dd> <dt> 输出 </dt> <dd> 每股最多赚多少钱 </dd> <dt> 样例输入 </dt> <dd>
4 947 267 359 771 7 669 735 322 794 397 565 181</dd> <dt> 样例输出 </dt> <dd>
504 472</dd> </dl>
解题思路:水过。。。排序,然后比较最前面的和最后面的。
#include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> #include <cmath> using namespace std; struct node{ int a; int num; }; node no[100005]; int cmp(node aa,node bb){ return aa.a<bb.a; } int main() { int n; int maxx=0; while(scanf("%d",&n)!=EOF){ maxx=0; for(int i=0;i<n;i++){ scanf("%d",&no[i].a); no[i].num=i; } sort(no,no+n,cmp); for(int i=0;i<n&&i<100;i++){ for(int j=n-1;j>=n-100;j--){ if(no[i].num<no[j].num){ maxx=max(maxx,no[j].a-no[i].a); } } } printf("%d\n",maxx); } return 0; }