#J00241. T1 逐日收益(profit)

0

T1 逐日收益(profit)

T1 逐日收益(profit)

题目描述

小明在研究一支股票的历史行情。已知该股票连续 nn 个交易日的收盘价依次为 a1,a2,…,ana_1,a_2,\dots,a_n(股价从 11 开始编号)。

小明制定了一条简单的「复盘」策略:对于第 ii 天(2≤i≤n2\le i\le n),他假设自己在第 11 天到第 i−1i-1 天中价格最低的那天买入,并在第 ii 天卖出。那么第 ii 天的理论收益就是

ai−min⁡1≤j<iaj.a_i-\min_{1\le j<i} a_j.

注意即使这一天理论收益为负,也要照常累加。请你帮小明算出把所有交易日的理论收益加起来的总和。

输入文件 profit.in,输出文件 profit.out。

输入格式

输入共两行。

第一行包含一个正整数 nn,表示交易日数。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\dots,a_n,表示每天的收盘价。

输出格式

输出共一行,包含一个整数,表示所有交易日理论收益之和。

样例 1 输入

5
3 1 4 1 5

样例 1 输出

5

样例 1 解释

  • 第 22 天:之前最低价为 a1=3a_1=3,收益 1−3=−21-3=-2;
  • 第 33 天:之前最低价为 min⁡(3,1)=1\min(3,1)=1,收益 4−1=34-1=3;
  • 第 44 天:之前最低价仍为 11,收益 1−1=01-1=0;
  • 第 55 天:之前最低价仍为 11,收益 5−1=45-1=4。

总和为 −2+3+0+4=5-2+3+0+4=5。

样例 2 输入

10
941604430 545041845 444293012 561485190 -224480701 -780272517 964471360 86899896 -983460878 98611407

样例 2 输出

1886115445

数据规模与约定

  • 对于 30%30\% 的数据,保证 n≤1000n\le 1000。
  • 对于另 30%30\% 的数据,保证 n≤105n\le 10^5。
  • 对于 100%100\% 的数据,保证 2≤n≤2×1052\le n\le 2\times 10^5,∣ai∣≤109|a_i|\le 10^9。