#include <bits/stdc++.h>
using namespace std;
class trio {
 public:
  long long first, second, third;
};
struct FenwickTree {
  vector<long long> bit;
  long long n;
  FenwickTree(long long n) {
    this->n = n;
    bit.assign(n, 0);
  }
  FenwickTree(vector<long long> a) : FenwickTree(a.size()) {
    for (size_t i = 0; i < a.size(); i++) add(i, a[i]);
  }
  long long sum(long long r) {
    long long ret = 0;
    for (; r >= 0; r = (r & (r + 1)) - 1) ret += bit[r];
    return ret;
  }
  long long sum(long long l, long long r) { return sum(r) - sum(l - 1); }
  void add(long long idx, long long delta) {
    for (; idx < n; idx = idx | (idx + 1)) bit[idx] += delta;
  }
};
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  long long n;
  cin >> n;
  long long arr[n + 1], p[n + 1], brrI[n + 1], fdp[n + 1];
  memset(brrI, 0, sizeof(brrI));
  memset(arr, 0, sizeof(arr));
  memset(p, 0, sizeof(p));
  for (long long i = 1; i < n + 1; ++i) {
    cin >> arr[i];
  }
  for (long long i = 1; i < n + 1; ++i) {
    cin >> p[i];
  }
  long long m;
  cin >> m;
  long long brr[m + 1];
  memset(brr, 0, sizeof(brr));
  for (long long i = 1; i < m + 1; ++i) {
    cin >> brr[i];
    brrI[brr[i]] = i;
  }
  map<long long, long long> futsum[n + 1];
  FenwickTree tree(n + 5);
  long long neg = 0;
  for (long long i = n; i >= 1; --i) {
    long long x1 = arr[i];
    long long x2 = brr[max(brrI[arr[i]] - 1, (long long)0)];
    futsum[i][x1] = tree.sum(x1 + 1, n + 1) + neg;
    futsum[i][x2] = tree.sum(x2 + 1, n + 1) + neg;
    if (p[i] < 0)
      neg += p[i];
    else
      tree.add(arr[i], p[i]);
  }
  for (long long i = 0; i < n + 1; ++i) fdp[i] = 1000000000000000000;
  fdp[0] = tree.sum(0, n + 1) + neg;
  for (long long i = 1; i < n + 1; ++i) {
    long long t1 = brrI[arr[i]];
    if (t1 == 0) continue;
    long long t2 = t1 - 1;
    long long x = fdp[brr[t2]];
    if (x == 1000000000000000000) continue;
    fdp[arr[i]] =
        min(fdp[arr[i]], x - futsum[i][brr[t2]] - p[i] + futsum[i][arr[i]]);
  }
  if (fdp[brr[m]] == 1000000000000000000)
    cout << "NO\n";
  else
    cout << "YES\n" << fdp[brr[m]] << "\n";
  return 0;
}
