题解 | #数组分组#

数组分组

https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86

#include <iostream>
#include <vector>
using namespace std;
bool dfs(vector<int> num, int sum_5, int sum_3) {
    if (num.empty()) {
        return sum_5 == sum_3;
    }
    int back = num.back();
    num.pop_back();
    return dfs(num, sum_5 + back, sum_3) || dfs(num, sum_5, sum_3 + back);
}
int main() {
    int n;
    cin >> n;
    vector<int> num;
    int sum_5 = 0, sum_3 = 0;
    for (int i = 0; i < n; i++) {
        int temp;
        cin >> temp;
        if (temp % 5 == 0) {
            sum_5 += temp;
        } else if (temp % 5 != 0 && temp % 3 == 0) {
            sum_3 += temp;
        } else {
            num.push_back(temp);
        }
    }
    bool b = dfs(num, sum_5, sum_3);
    if (b) {
        cout << "true" << endl;
    } else {
        cout << "false" << endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务