熱門文章

2025年2月7日 星期五

ZeroJudge 解題筆記:e807. 2.降雨量統計 (Rainfall statistics)

作者:王一哲
日期:2025年2月7日



ZeroJudge 題目連結:e807. 2.降雨量統計 (Rainfall statistics)

解題想法


這題如果會用取最大值及找索引值的工具會很好寫 。

Python 程式碼


使用時間約為 26 ms,記憶體約為 3.3 MB,通過測試。
week = [0]*7  # 一週 7 天每天的累積雨量
quater = [0]*4  # 一天內 4 個時段的累積雨量
for i in range(7):  # 讀取 7 天的雨量
    M, A, N, E = map(float, input().split())
    week[i] = M + A + N + E  # 一天的累積雨量
    quater[0] += M; quater[1] += A  # 更新 4 個時段的累積雨量
    quater[2] += N; quater[3] += E
print(week.index(max(week)) + 1)  # 印出累積雨量最多的是星期幾,要加 1
name = ("morning", "afternoon", "night", "early morning")  # 時段對應的名稱
print(name[quater.index(max(quater))])  # 印出時段名稱


C++ 程式碼


使用時間約為 2 ms,記憶體約為 356 kB,通過測試。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    float week[7] = {0}, quater[7] = {0};  // 一週 7 天每天的累積雨量,一天內 4 個時段的累積雨量
    for(int i=0; i<7; i++) {  // 讀取 7 天的雨量
        float M, A, N, E; cin >> M >> A >> N >> E;
        week[i] = M + A + N + E;  // 一天的累積雨量
        quater[0] += M; quater[1] += A;  // 更新 4 個時段的累積雨量
        quater[2] += N; quater[3] += E;
    }
    cout << max_element(week, week+7) - week + 1<< "\n";  // 印出累積雨量最多的是星期幾,要加 1
    string name[4] = {"morning", "afternoon", "night", "early morning"};  // 時段對應的名稱
    cout << name[max_element(quater, quater+4) - quater] << "\n";  // 印出時段名稱
    return 0;
}


沒有留言:

張貼留言