CA

许诺  •  1个月前


#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector<int> V(n);
	for (int i = 0; i < n; ++i) {
    		cin >> V[i];
	}
	
	int max_sum = 0;
	for (int num : V) {
    		max_sum += num;
	}
	
	vector<bool> dp(max_sum + 1, false);
	dp[0] = true;
	
	for (int i = 0; i < n; ++i) {
    		for (int j = max_sum; j >= V[i]; --j) {
        			if (dp[j - V[i]]) {
            			dp[j] = true;
        		}
    		}
	}
	
	int count = 0;
	for (int i = 1; i <= max_sum; ++i) {
    		if (dp[i]) {
        		count++;
    		}
	}
	
	cout << count << endl;
	
	return 0;
}

评论:

请先登录,才能进行评论