#41730: C++解(附註解)


a0976828118@gmail.com (Ryan shiun)

學校 : 不指定學校
編號 : 276025
來源 : [118.160.69.87]
最後登入時間 :
2024-08-21 21:39:26
j605. 1. 程式考試 -- 2023年1月APCS | From: [118.160.69.87] | 發表日期 : 2024-08-21 10:50

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<pair<int, int>> data(n);

    // 存入資料
    for (int i = 0; i < n; i++) {
        cin >> data[i].first >> data[i].second;
    }
   
    // 計算最高分時間
    auto maxScoreTime = max_element(data.begin(), data.end(),
                                [](const pair<int, int>&a, const pair<int, int>&b) {
                                    return a.second < b.second;
                                })-> first;

    // 計算重大錯誤次數
    int counter = count_if(data.begin(), data.end(),
                           [](const pair<int, int>&c) {
                            return c.second == -1;
                           });

    // 計算最高分數
    auto maxScore = max_element(data.begin(), data.end(),
                                [](const pair<int, int>&a, const pair<int, int>&b) {
                                    return a.second < b.second;
                                })-> second;

    int totalScore = maxScore - n - (counter*2);
    // 避免總分為負的
    if (totalScore < 0) totalScore = 0;                            
    cout << totalScore << " " << maxScoreTime << endl;
    return 0;
}
 
ZeroJudge Forum