#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int n, arr[1000], index[1000], sum1 = 0, sum2 = 0, k = 0, flagFalse = 1;
int temp[1000], num = 0; // num为剩下的数量, 存入到temp数组里面
int check(int n);
int main(){
cin>>n;
if(n == 1){cout<<"false"<<endl; return 0;}
for(int i = 0; i < n; i++)
cin>>arr[i];
if(n == 2){
if(arr[0] == arr[1]){cout<<"ture"<<endl; return 0;}
else {cout<<"false"<<endl; return 0;}
}
for(int i = 0; i < n; i++){
if(arr[i]%5 == 0){
sum1 = sum1 + arr[i];
index[k++] = i;
}
else if(arr[i]%3 == 0 && check(i)){
sum2 = sum2 + arr[i];
index[k++] = i;
}
else
temp[num++] = arr[i];
}
/*
for(int i = 0; i < k; i++)
cout<<index[i]<<endl;
for(int i = 0; i < num; i++)
cout<<temp[i]<<" ";
cout<<endl;
cout<<"sum1 = "<<sum1<<endl;
cout<<"sum2 = "<<sum2<<endl;
*/
for(int i = 0; i < num; i++){
int sum3 = 0, sum4 = 0;
for(int j = 0; j <= i; j++){
sum3 = sum3 + temp[j];
//cout<<"sum3 = "<<sum3<<endl;
}
for(int j = num-1; j > i; j--){
sum4 = sum4 + temp[j];
// cout<<"sum4 = "<<sum4<<endl;
}
if(sum1 + sum3 == sum2 + sum4){
cout<<"true"<<endl;
flagFalse = 0;
return 0;
}
}
sort(temp, temp + num); // 在用next_permutation之前一定要排序,才能遍历所有情况
while(next_permutation(temp, temp + num)){
//cout<<"in the next_permutation........."<<endl;
for(int i = 0; i < num; i++){
int sum3 = 0, sum4 = 0;
for(int j = 0; j <= i; j++){
sum3 = sum3 + temp[j];
//cout<<"sum3 = "<<sum3<<endl;
}
for(int j = num-1; j > i; j--){
sum4 = sum4 + temp[j];
//cout<<"sum4 = "<<sum4<<endl;
}
if(sum1 + sum3 == sum2 + sum4){
cout<<"true"<<endl;
flagFalse = 0;
return 0;
}
}
}
if(flagFalse == 1)
cout<<"false"<<endl;
return 0;
}
int check(int n){
//存在则返回0
for(int m = 0; m < k; m++){
if(index[m] == n)return 0;
}
//不存在则返回1
return 1;
}
201301 JAVA题目0-1级
最新推荐文章于 2020-05-19 14:52:10 发布