#55329: c++


yp11451267@yphs.tp.edu.tw (705-43鄭丞博)


#include <iostream>
#include <string>
#include <iomanip>

using namespace std;

// 費率表:[方案A~E][時段0=Day, 1=Evening, 2=Night]
double rates[5][3] = {
    {0.10, 0.06, 0.02}, // A
    {0.25, 0.15, 0.05}, // B
    {0.53, 0.33, 0.13}, // C
    {0.87, 0.47, 0.17}, // D
    {1.44, 0.80, 0.30}  // E
};

// 判斷某個「分鐘數」屬於哪一個時段
int get_period(int m) {
    m %= 1440; // 處理跨日超過 1440 分鐘的情況
    if (m >= 480 && m < 1080) return 0;       // 08:00 ~ 18:00 Day
    if (m >= 1080 && m < 1320) return 1;      // 18:00 ~ 22:00 Evening
    return 2;                                 // 22:00 ~ 08:00 Night
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    char type;
    while (cin >> type && type != '#') {
        string phone_number;
        int sh, sm, eh, em;
        cin >> phone_number >> sh >> sm >> eh >> em;

        int start_time = sh * 60 + sm;
        int end_time = eh * 60 + em;

        // 關鍵陷阱 1:時間相同代表講了整整 24 小時
        if (end_time == start_time) {
            end_time += 1440;
        }
        // 關鍵陷阱 2:結束時間小於開始時間,代表跨日
        else if (end_time < start_time) {
            end_time += 1440;
        }

        int day_mins = 0, eve_mins = 0, nite_mins = 0;

        // 逐分鐘模擬統計
        for (int m = start_time; m < end_time; m++) {
            int period = get_period(m);
            if (period == 0) day_mins++;
            else if (period == 1) eve_mins++;
            else nite_mins++;
        }

        // 計算總費用
        int rate_idx = type - 'A';
        double total_cost = day_mins * rates[rate_idx][0] + 
                            eve_mins * rates[rate_idx][1] + 
                            nite_mins * rates[rate_idx][2];

        // 嚴格的排版輸出
        // 各欄位寬度:電話(10), 日間(6), 傍晚(6), 夜間(6), 費率(3), 總價(8, 小數點後2位)
        cout << setw(10) << phone_number
             << setw(6) << day_mins
             << setw(6) << eve_mins
             << setw(6) << nite_mins
             << setw(3) << type
             << setw(8) << fixed << setprecision(2) << total_cost << "\n";
    }

    return 0;
}