日期:2025年3月25日
ZeroJudge 題目連結:g497. 電梯 (Elevator)
解題想法
注意:電梯一開始在 1 樓。
Python 程式碼
使用時間約為 46 ms,記憶體約為 3.8 MB,通過測試。
import sys
for line in sys.stdin:
n = int(line) # 升降次數
arr = [1] + list(map(int, input().split())) # 停留的樓層,開頭加上 1
tot = 0 # 耗電量
for i in range(n): # 依序掃過 0 ~ n-1
d = arr[i+1] - arr[i] # 樓層變化
if d > 0: tot += 3*d # 上升一層耗 3 度電
else: tot -= 2*d # 下降一層耗 2 度電
print(tot) # 印出答案
C++ 程式碼
使用時間約為 2 ms,記憶體約為 96 kB,通過測試。
#include <cstdio>
using namespace std;
int main() {
int n; // 升降次數
while(scanf("%d", &n) != EOF) {
int pre = 1, now, tot = 0; // 原來的樓層,預設值為 1;現在的樓層;耗電量
for(int i=0; i<n; i++) { // 執行 n 次
scanf("%d", &now); // 讀取現在的樓層
int d = now - pre; // 樓層變化
if (d > 0) tot += 3*d; // 上升一層耗 3 度電
else tot -= 2*d; // 下降一層耗 2 度電
pre = now; // 更新 pre
}
printf("%d\n", tot); // 印出答案
}
return 0;
}
沒有留言:
張貼留言