#include <iostream>
using namespace std;
#include <set>
#include <vector>
int main() {
int kind;
cin >> kind;
vector<int> weight(kind, 0);
vector<int> num(kind, 0);
for (int i = 0; i < kind; i++) {
cin >> weight[i];
}
for (int i = 0; i < kind; i++) {
cin >> num[i];
}
set<int> result;
result.insert(0);
for (int j = 0; j < weight.size(); j++) {
for (int i = 1; i <= num[j]; i++) {
set<int> temp(result);
for (auto& t : temp) {
result.insert(t + weight[j]);
}
}
}
cout << result.size() << endl;
}
set容器不允许重复元素,每添加一个砝码,都往之前的情况上加,就可以遍历出所有情况了

京公网安备 11010502036488号