日期:2025年6月15日
ZeroJudge 題目連結:o922. 年貨大街 (Market)
解題想法
依序讀取商品編號及質量,計算總金額即可。
Python 程式碼
使用時間約為 30 ms,記憶體約為 3.3 MB,通過測試。
import sys
for line in sys.stdin:
n = int(line) # n 款商品
ps = [0] + list(map(int, input().split())) # 各商品每公克價格,配合從1開始編號開頭加 0
total = 0 # 總金額
while True: # 無窮迴圈
x, g = map(int, input().split()) # x 商品買 g 公克
if x == 0 and g == 0: break # x, g 都是 0,中止迴圈
total += ps[x]*g # 更新 total
print(total)
使用時間約為 25 ms,記憶體約為 3.3 MB,通過測試。
import sys
for line in sys.stdin:
n = int(line) # n 款商品
ps = [0] + list(map(int, input().split())) # 各商品每公克價格,配合從1開始編號開頭加 0
total = 0 # 總金額
x, g = -1, -1 # x 商品買 g 公克
while x != 0 and g != 0: # x, g 都是 0,中止迴圈
x, g = map(int, input().split()) # x 商品買 g 公克
total += ps[x]*g # 更新 total
print(total)
C++ 程式碼
使用時間約為 2 ms,記憶體約為 88 kB,通過測試。
#include <cstdio>
using namespace std;
int main() {
int n; // n 款商品
while(scanf("%d", &n) != EOF) {
int ps[n+1] = {0}, total = 0; // 各商品每公克價格,配合從1開始編號開頭加 0;總金額
for(int i=1; i<=n; i++) scanf("%d", &ps[i]);
while(true) { // 無窮迴圈
int x, g; scanf("%d %d", &x, &g); // x 商品買 g 公克
if (x == 0 && g == 0) break; // x, g 都是 0,中止迴圈
total += ps[x]*g; // 更新 total
}
printf("%d\n", total);
}
return 0;
}
使用時間約為 2 ms,記憶體約為 88 kB,通過測試。
#include <cstdio>
using namespace std;
int main() {
int n; // n 款商品
while(scanf("%d", &n) != EOF) {
int ps[n+1] = {0}, total = 0; // 各商品每公克價格,配合從1開始編號開頭加 0;總金額
for(int i=1; i<=n; i++) scanf("%d", &ps[i]);
int x = -1, g = -1; // x 商品買 g 公克
while(x != 0 && g != 0) { // x, g 都是 0,中止迴圈
scanf("%d %d", &x, &g); // x 商品買 g 公克
total += ps[x]*g; // 更新 total
}
printf("%d\n", total);
}
return 0;
}
沒有留言:
張貼留言