#include <iostream> #include <vector> #include <unordered_set> using namespace std; int main() { int n; cin >> n; vector<int> wei(n,0),num(n,0); // 输入每种砝码的重量 for (auto &i:wei){ cin >> i; } vector<int> vec; // 输入每种砝码的数量,另外,将单个砝码的重量(包括重复的)依次装入vec for (int i = 0; i < n; ++i){ cin >> num[i]; for (int j = 0; j < num[i]; ++j){ vec.push_back(wei[i]); } } // 所有可能的重量的集合 unordered_set<int> s; s.insert(0); for (auto i:vec){//temp为每次添加新砝码重量前的集合 unordered_set<int> temp(s); for (auto j:temp){ s.insert(j + i); } } cout << s.size() << endl; return 0; }