#P6904. [ICPC2015 WF] Amalgamated Artichokes

[ICPC2015 WF] Amalgamated Artichokes

题目描述

Fatima Cynara is an analyst at Amalgamated Artichokes (AA). As with any company, AA has had some very good times as well as some bad ones. Fatima does trending analysis of the stock prices for AA, and she wants to determine the largest decline in stock prices over various time spans. For example, if over a span of time the stock prices were 1919, 1212, 1313, 1111, 2020 and 1414, then the largest decline would be 88 between the first and fourth price. If the last price had been 1010 instead of 1414, then the largest decline would have been 1010 between the last two prices.

Fatima has done some previous analyses and has found that the stock price over any period of time can be modelled reasonably accurately with the following equation:

$$\operatorname {price}(k) = p \cdot (\sin (a \cdot k+b) + \cos (c \cdot k+d) + 2) $$

where pp, aa, bb, cc and dd are constants. Fatima would like you to write a program to determine the largest price decline over a given sequence of prices. Figure 1 illustrates the price function for Sample Input 1. You have to consider the prices only for integer values of kk.

Figure 1: Sample Input 1. The largest decline occurs from the fourth to the seventh price.

输入格式

The input consists of a single line containing 66 integers pp (1p10001 \le p \le 1\, 000), aa, bb, cc, dd (0a,b,c,d10000 \le a, b, c, d \le 1\, 000) and nn (1n1061 \le n \le 10^6). The first 55 integers are described above. The sequence of stock prices to consider is $\operatorname {price(1)}, \operatorname {price(2)}, \ldots , \operatorname {price}(n)$.

输出格式

Display the maximum decline in the stock prices. If there is no decline, display the number 00. Your output should have an absolute or relative error of at most 10610^{-6}.

题目大意

题目背景

法蒂玛是针对联合洋蓟果业公司 (Amalgamated Artichokes , AA) 的股票分析员。和其他的公司一样,联合洋蓟果业公司有的时候行情较好,有的时候不太行。法蒂玛对联合洋蓟果业公司的股票价格做了跟踪分析,她想确定不同时间段内股价最大跌幅是多少。比如如果一段时间内股价分别为191919元,121212元,131313元,111111元,202020元,141414元,则最大的跌幅为第一天和第四天之间的888。如果最后一天的价格不是141414元而是101010元,则最大跌幅为最后两天股价之间的101010元。

法蒂玛做了些前期的分析,发现一段时间的股价可以建模精确合理地表示为以下方程式:

price(k)=p(sin(ak+b)+cos(ck+d)+2)price⁡(k)=p⋅(sin⁡(a⋅k+b)+cos⁡(c⋅k+d)+2)

其中p,a,b,c,dp,a,b,c,d均为常数。法蒂玛想要你写个程序确定给定价格序列上的最大股价跌幅。

图1说明了第一组样例的价格函数,你只能考虑时间为整数kk时的价格。

对于第一组样例,最大股价跌幅出现在第四天和第七天之间。

一句话题意

对于给定序列,求差值最大的逆序对

输入格式

输入共一行,包含六个整数$p (1 \le p \le 1000), a, b, c, d ( 0 \le a, b, c, d \le 1\, 000)$ 和n(1n106). n (1 \le n \le 10^6).

前五个整数意义如题目所述,给定序列长度为n。

输出格式

输出股价最大跌幅,如果没有股价下跌则输出0。

输出最多和标准答案有10610^{-6}的相对或绝对误差。

说明/提示

时间限制: 5000 ms

空间限制: 1048576 kB.

International Collegiate Programming Contest (ACM-ICPC) World Finals 2015

42 1 23 4 8 10

104.855110477

100 7 615 998 801 3

0.00

100 432 406 867 60 1000

399.303813

提示

Time limit: 5000 ms, Memory limit: 1048576 kB.

International Collegiate Programming Contest (ACM-ICPC) World Finals 2015