#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容器不允许重复元素,每添加一个砝码,都往之前的情况上加,就可以遍历出所有情况了