#include<iostream> #include<algorithm> #include<vector> #include<math.h> using namespace std; bool judge(int i, vector<int>& arr, int sum1, int sum2){ //剩余的数组中组合出等于3和5和之差的 if(i == arr.size()) return abs(sum1) == sum2; else //加放一边,减放另一边 return judge(i + 1, arr, sum1 + arr[i], sum2) || judge(i + 1, arr, sum1 - arr[i], sum2); } int main(){ int n; while(cin >> n){ vector<int> arr; int sum3 = 0; int sum5 = 0; int rest = 0; for(int i = 0; i < n; i++){ int x; cin >> x; if(x % 5 == 0) //先求一个组的和 sum5 += x; else if(x % 3 == 0) //再求另一个组的和 sum3 += x; else{ arr.push_back(x); //剩余的加入数组并求和 } } if(judge(0, arr, 0, abs(sum5 - sum3))) cout << "true" << endl; else cout << "false" << endl; } return 0; }