m931. 1. 遊戲選角

 解題思路大致是先找到能力值最大的,然後將其設為0

然後再找一次能力值最大的,這樣就達成題意要的能力值第二大的


註:記得要訂vector大小


#include <iostream>
#include <vector>

using namespace std;

int main () {
    int n = 0, valaue = 0, max_v = 0, max_v_set = 0;
    vector<pair<int, int>> v;

    cin >> n;
    v.resize(n); // 記得配置vector大小
    for (int i = 0; i < n; i ++) {
        cin >> v[i].first >> v[i].second;
        valaue = v[i].first * v[i].first + v[i].second * v[i].second;
        if (valaue >= max_v) {
            max_v = valaue;
            max_v_set = i;
        }
    }
    v[max_v_set] = {0, 0};
    max_v_set = 0;
    max_v = 0;
    valaue = 0;

    for (int i = 0; i < n; i ++) {
        valaue = v[i].first * v[i].first + v[i].second * v[i].second;
        if (valaue >= max_v) {
            max_v = valaue;
            max_v_set = i;
        }
    }
    cout << v[max_v_set].first << " " << v[max_v_set].second;

}

留言

這個網誌中的熱門文章

a010. 因數分解

a034. 二進位制轉換