# APCS實作題2021年1月第1題:購買力 > 日期:2023年9月14日 > 作者:王一哲 > 題目來源:110年1月實作題第1題 > [ZeroJudge 題目連結](https://zerojudge.tw/ShowProblem?problemid=f605) <br /> ## 題目 ### 問題描述 市場上有 $n$ 個商品,你也知道這 $n$ 個商品最近3天的價格。 你想要購買所以有近期價格大幅波動的商品,也就是近三天價格最高與最低差異至少 $d$ 的所有物品,而購買物品的費用是它近 3 天的價格的平均值,保證這個平均值會是整數。 給定 $n$ 個物品最近3天的價格,以其所設定的 $d$,輸出總共購買的商品數量以及費用總和。 <br /> ### 輸入說明 配分 - 50分:$n = 1$ - 50分:$1 \leq n \leq 100$, $1 \leq d \leq 100$,所有價格皆為 $[1, 100]$ 內的整數。 <br /> ### 輸出說明 在一行輸出兩個數字以空格分隔,依序是購買個商品數量以及總共的花費。 <br /> ### 範例一:輸入 ``` 1 3 24 27 21 ``` ### 範例一:正確輸出 ``` 1 24 ``` <br /> ### 範例二:輸入 ``` 3 4 24 33 42 51 48 60 77 77 77 ``` ### 範例二:正確輸出 ``` 2 86 ``` <br /> ## Python 程式碼 於 ZeroJudge 測試結果,最長運算時間約為 21 ms,使用記憶體最多約為 3.3 MB,通過測試。 ```python= n, d = map(int, input().split()) num, total = 0, 0 for _ in range(n): data = list(map(int, input().split())) diff = max(data) - min(data) if diff >= d: num += 1 total += sum(data) // len(data) print("{:d} {:d}".format(num, total)) ``` <br /><br /> ## C++ 程式碼 於 ZeroJudge 測試結果,最長運算時間約為 3 ms,使用記憶體最多約為 324 kB,通過測試。 ```cpp= #include <iostream> #include <limits.h> using namespace std; int main() { int n, d; cin >> n >> d; int num = 0, total = 0; for(int i=0; i<n; i++) { int high = INT_MIN, low = INT_MAX, price, tot = 0; for(int j=0; j<3; j++) { cin >> price; tot += price; if (price > high) high = price; if (price < low) low = price; } if (high - low >= d) { num++; total += tot / 3; } } cout << num << " " << total << endl; return 0; } ``` <br /><br /> --- ###### tags:`APCS`、`Python`、`C++`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.