求助,最后一个过不去,只有90分
查看原帖
求助,最后一个过不去,只有90分
1562283
Mikumikumi123楼主2025/1/23 11:45

求助,最后一个过不去,只有90分

#include<iostream>
using namespace std;
#include<algorithm>
int dat[62];
int dfs(int a, int b, int k) {
    if (a > b) {
        return 0;
    }
    int minl = 24;
    for (int i = a;i <= b;i++) {
        int x = k - dat[i];
        int sum = dat[i] + dfs(i + 1, b, x);
        int f = abs(sum - k);
        minl = min(f, minl);
    }
    return minl + k;
}
int ans[4];
int main() {
    for (int i = 0;i < 4;i++) {
        cin >> ans[i];
    }
    int sum0 = 0;
    for (int i = 0;i < 4;i++) {
        int sum = 0;
        for (int j = 1;j <= ans[i];j++) {
            cin >> dat[j];
            sum += dat[j];
        }
        int y = dfs(1, ans[i], sum / 2);
        sum0 += max(sum - y, y);
        for (int j = 1;j <= ans[i];j++) {
            dat[j] = 0;
        }
    }
    cout << sum0;
    return 0;
}
2025/1/23 11:45
加载中...