#40513: C++(有點困難,不適合初學者)


1121228@stu.wghs.tp.edu.tw (jhhc)

學校 : 臺北市私立薇閣高級中學
編號 : 266561
來源 : [60.248.154.139]
最後登入時間 :
2024-10-28 13:15:35
b568. 70萬都沒有,你還想當選手? -- 104學年度板橋高中校內資訊學科能力競賽(四) | From: [218.172.15.155] | 發表日期 : 2024-05-26 13:48

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

const int MOD = 700000;

int main() {
    int n;
    cin >> n;
    vector<int> powerUps(n);

    for (int i = 0; i < n; i++) {
        cin >> powerUps[i];
    }

    vector<bool> dp(MOD + 1, false);
    dp[0] = true;

    for (int i = 0; i < n; i++) {
        vector<bool> new_dp(dp);
        for (int j = 0; j <= MOD; j++) {
            if (dp[j]) {
                int new_power = (j + powerUps[i]) % MOD;
                new_dp[new_power] = true;
                if (new_power == 0) {
                    new_dp[MOD] = true;
                }
            }
        }
        dp = new_dp;
    }

    int maxPower = 0;
    for (int i = 0; i <= MOD; i++) {
        if (dp[i]) {
            maxPower = max(maxPower, i);
        }
    }

    cout << maxPower << endl;
    return 0;
}

 

 

 

 
ZeroJudge Forum