h081. 1. 程式交易
標籤 : APCS 模擬 陣列
通過比率 : 3568人/3882人 ( 92% ) [非即時]
評分方式:
Tolerant

最近更新 : 2022-01-09 20:09

內容

小明最近想要用程式做股票交易,給一個股票的歷史價格 $a[1], a[2], ..., a[n]$ 他的投資策略如下
1. 同一個時間最多只會持有一張股票, 並會在時間點 $1$ 花 $a[1]$ 買進。
2. 若當下持有股票且該股票買進價格為 $x$,當遇到價格 $y$ 大於等於 $x + D$ 時即賣出,並轉得利潤 $y - x$。
3. 若當下沒有持有股票且上一次的賣出價格為 $x$,當遇到價格 $y$ 小於等於 $x - D$ 時則會買進股票。

輸出依照上述規則買賣後所得到的利潤和,若交易結束仍持有股票,則不考慮該股票買進的成本,直接無視該股票即可。

輸入說明

第一行輸入兩個正整數 $n, D$,接下來有 $n$ 個正整數,代表每個時間點股票的價格。

 

數字範圍

  • $1 \leq n \leq 100, 1 \leq D \leq 100$
  • $1 \leq a[i] \leq 100$

子題配分

  • (50%): $n = 3$
  • (50%): 無額外限制
輸出說明

輸出一個正整數,代表總利潤。

範例輸入 #1
3 10
50 20 45
範例輸出 #1
0
範例輸入 #2
6 10
30 20 45 38 10 20
範例輸出 #2
25
測資資訊:
記憶體限制: 512 MB
提示 :

範例 1
總共 $3$ 個時間點,於時間點 $1$ 花費 $50$ 買進股票,但後續沒有任何時間點超過 $50$ 元,因此總利潤為 $0$

範例 2
總共 $6$ 個時間點,於時間點 $1$ 花費 $30$ 買進股票,並於時間點 $3$ 得到 $45$ 賣出獲得利潤為 $15$,再於時間點 $5$ 花費 $10$ 買進,並於時間點 $6$ 賣出獲得利潤為 $10$,總利潤為 $25$。

標籤:
APCS 模擬 陣列
出處:
2022年1月APCS [管理者: cthbst (吳宗達) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
38800 linyohan3@gm ... (林宥安) h081
C++解答
716 2023-12-24 00:22
37534 sammy60406@g ... (張浩千(24張浩千)) h081
c++ 解
631 2023-09-16 13:26
35101 alan8656 (阿伯) h081
C++解題影片
441 2023-05-08 22:41
34512 willy633526@ ... (ByTech) h081
python 題解
828 2023-03-26 22:28
34422 luray0601@gm ... (QWERTYPIG) h081
C++題解
731 2023-03-17 22:37