#include <bits/stdc++.h>
using namespace std;
int n;
int mxans = 0, mxadd = 0;
void recur(int cur, vector<int> &a, vector<int> &type) {
if (cur==n) {
int sm1=0, sm2=0, sm3=0;
for (int i=0; i<n; i++) {
if (type[i] == 1) sm1+=a[i];
else if (type[i] == 2) sm2+=a[i];
else sm3+=a[i];
}
if (sm1 == sm2) {
if (mxans < sm1) {
mxans = sm1;
mxadd = sm3;
}
}
return;
}
for (int i=0; i<=2; i++) {
int tem = type[cur];
type[cur] = i;
recur(cur+1, a, type);
type[cur] = tem;
}
}
int main() {
cin.tie(0)->sync_with_stdio(0);
cin>> n;
vector<int> a(n);
for (int i=0; i<n; i++) cin>> a[i];
vector<int> type(n);
recur(0, a, type);
cout<< mxans+mxadd;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |