2025 年 1 月 5 日 APCS 第一題 q181. 1. 等紅綠燈
題目連結 : https://zerojudge.tw/ShowProblem?problemid=q181
C++ 程式碼參考 :
``` cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
int green,red,cir,n,accum=0;
// green :綠燈秒數,red :紅燈秒數,cir :一次循環秒數,accum :累積等待時間
cin >> green >> red >> n;
cir=green+red;
// 綠燈時間 + 紅燈時間 = 一個循環的時間
int datas[n];
for (int i=0;i<n;i++) cin >> datas[i];
// 所有小朋友到達的時間
for (int i=0;i<n;i++){
if (datas[i]%cir>=green) accum+=cir-(datas[i]%cir);
//判斷到達時間是否紅燈。如果是,需等待到綠燈,並記錄累積等待的時間
}
cout << accum << endl;
// 輸出累積的時間
return 0;
}
```
判分結果 : AC (2ms, 336KB)
時間複雜度 : O(n)