#include <iostream> #include <vector> #include <unordered_set> using namespace std; int main() { int n; cin >> n; vector<int> weights(n); vector<int> nums(n); for (int& weight : weights) { cin >> weight; } for (int& num : nums) { cin >> num; } unordered_set<int> mark; mark.insert(0); int count = 0; for (int i = 0; i < n; ++i) { for (int j = 1; j <= nums[i]; ++j) { unordered_set<int> temp(mark); for (auto iter = temp.begin(); iter != temp.end(); iter++) //当前集合每个都可以加一次 mark.insert(*iter + weights[i]); } } cout << mark.size() << endl; return 0; } // 64 位输出请用 printf("%lld")