int solve(vector<int> a, int m) {
int n = a.size();
sort(a.begin(), a.end());
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
if (binary_search(a.begin(), a.end(), m - a[i] - a[j] - a[k])) {
return 1;
}
}
}
}
return 0;
}
int solve(vector<int> a, int m) {
int n = a.size();
vector<int> tmp;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
tmp.push_back(a[i] + a[j]);
}
}
sort(tmp.begin(), tmp.end());
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (binary_search(tmp.begin(), tmp.end(), m - a[i] - a[j])) {
return 1;
}
}
}
return 0;
}
int solve(vector<int> a, int m) {
int n = a.size();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
for (int l = 0; l < n; l++) {
if (a[i] + a[j] + a[k] + a[l] == m) {
return 1;
}
}
}
}
}
return 0;
}