求助,能过案例,但全WA
查看原帖
求助,能过案例,但全WA
967480
jiunichenyin楼主2024/2/25 20:51
#include<iostream>
#include<iomanip>
#include<math.h>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
int ans = 0;
int suma=0, sumb=0;
void meiju(int a[70],int n) {
    if (n==1) {
        ans += a[0];
    }
    else if (n == 2) {
        ans += max(a[0], a[1]);
    }
    else if (n >= 3) {
        suma = a[0], sumb = a[1];
        for (int i = 2; i < n; ++i) {
            if (fabs(suma + a[i] - sumb) < fabs(sumb + a[i] - suma)) {
                suma += a[i];
            }
            else {
                sumb += a[i];
            }
        }
        if (suma > sumb) {
            ans += suma;
        }
        else {
            ans += sumb;
        }
    }
}
bool com(int a, int b) {
    return a > b;
}
int az[70] = { 0 }, bz[70] = { 0 }, cz[70] = { 0 }, dz[70] = { 0 };
int main() {
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    for (int i = 0; i < a; ++i) {
        cin >> az[i];
    }
    for (int i = 0; i < b; ++i) {
        cin >> bz[i];
    }
    for (int i = 0; i < c; ++i) {
        cin >> cz[i];
    }
    for (int i = 0; i < d; ++i) {
        cin >> dz[i];
    }
    sort(az, az + a, com); sort(bz, bz + b, com); sort(cz, cz + c, com); sort(dz, dz + d, com);
    meiju(az, a);
    meiju(bz, b);
    meiju(cz, c);
    meiju(dz, d);
    cout << ans;
    return 0;
}
2024/2/25 20:51
加载中...