我这个小蔡蔡不会优化代码,暴力废了,求助,帮我优化代码。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
inline ll read() {
ll x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = x * 10 + ch - '0';
ch = getchar();
}
return x * f;
}
int main() {
int n = read();
vector<ll> a(n), b(n), c(n);
for (int i = 0; i < n; i++) a[i] = read();
for (int i = 0; i < n; i++) b[i] = read();
for (int i = 0; i < n; i++) c[i] = read();
ll ans = 0;
vector<ll> sum(n + 1, 0);
for (int i = 0; i < n; i++) {
sum[i + 1] = sum[i] + a[i];
}
for (int l1 = 0; l1 < n; l1++) {
for (int r1 = l1; r1 < n; r1++) {
ll gain1 = 0;
for (int i = l1; i <= r1; i++) {
gain1 += b[i] - a[i];
}
for (int l2 = 0; l2 < n; l2++) {
for (int r2 = l2; r2 < n; r2++) {
ll curr = sum[n];
curr += gain1;
for (int i = l2; i <= r2; i++) {
if (i >= l1 && i <= r1) {
curr += c[i] - b[i];
} else {
curr += b[i] - a[i];
}
}
ans = max(ans, curr);
}
}
}
}
printf("%lld\n", ans);
return 0;
}