ZeroJudge F934: 消失的二十年

股王 小方 最近股票買哪一張哪一張就跌,把過去將近 20 年的壓歲錢都輸光,所以大家都說:消失的 20 年

現在 小方 剩下買一次股票的錢,而且就決定買編號 0612 CIA 這隻股票。

於是身為 0612 CIA 的一員的你,你發現未來很多天股價的機密資訊,好心的你決定告訴 小方 要在什麼時候買以及什麼時候賣,以及可以賺到多少錢。

但是為了要先讓 小方 感興趣你所計算出的資訊,所以現在你只要計算出可以賺到多少錢。

⚠️注意,最多只能買賣一次

⚠️注意,不能賣空,所以只能先買後賣!

範例測資

範例輸入範例輸出
輸入只有一行,有很多個數字,代表這隻股票未來每日的收盤價。
保證為正整數,且第一個數必為 100。
輸出一個數字,代表股神 小方 的最大獲利。
100 108 115 115 120 109 11020

解題思路

使用 EOF 收資料,必且宣告兩個變數 min 和 ans,min 預設為 100,ans 預設為 0。

當收到的資料 > min 時,判斷目前 ans 還是收到的資料 – min 比較大,如果比較大就將其設為新的 ans。如果收到的資料 < min 時,將 min 設為收到的數字。

最後輸出 ans 即可。

範例程式碼-ZeroJudge F934: 消失的二十年

#include <iostream>
using namespace std;

int main() {
    cin.sync_with_stdio(0);
    cin.tie(0);
    int N, min = 100, ans = 0;
    while (cin >> N) {
        if (N > min) {
            ans = max(ans, N-min);
        }
        if (N < min) min = N;
    }
    cout << ans << "\n";
}

//ZeroJudge F934
//Dr. SeanXD

發佈留言