日期:2025年1月14日
作者:王一哲
ZeroJudge 題目連結
操場起跑線上有一個紅綠燈,綠燈為
註:騎到終點時如果紅燈剛好開始,就要再騎
第一行輸入兩個正整數
子題配分
輸出這
10 10
1
14
6
4 3
3
12 16 25
5
費時最久約為 28 ms,使用記憶體最多約為 3.3 MB,通過測試。
a, b = map(int, input().split()) # 綠燈、紅燈秒數
c = a+b # 綠燈、紅燈循環一次的秒數
n = int(input()) # n 個人
ts = list(map(int, input().split())) # 每個人騎一圈需要的秒數
ans = 0 # 等紅燈秒數
for t in ts: # 依序讀取每個人騎一圈需要的秒數
r = t%c # 剩下的秒數
if r >= a: ans += c-r # 遇到紅燈,ans 加上剩下的紅燈秒數
print(ans) # 印出答案
費時最久約為 3 ms,使用記憶體最多約為 348 kB,通過測試。
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int a, b; cin >> a >> b; // 綠燈、紅燈秒數
int c = a+b, n, ans = 0; // 綠燈、紅燈循環一次的秒數 c,n 個人,等紅燈秒數
cin >> n; // 讀取人數
for(int i=0, t, r; i<n; i++) { // 依序讀取每個人騎一圈需要的秒數 t
cin >> t; r = t%c; // 剩下的秒數
if (r >= a) ans += c-r; // 遇到紅燈,ans 加上剩下的紅燈秒數
}
cout << ans << "\n"; // 印出答案
return 0;
}
APCS
、Python
、C++