#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  int n;
  cin >> n;
  vector<int> a(n), b(n);
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) cin >> b[i];
  long long wyn = 0, j = 0;
  deque<pair<long long, long long> > qa, qb;
  for (int i = 0; i < n; i++) {
    while (!qa.empty() && qa.back().second <= a[i]) {
      qa.pop_back();
    }
    qa.push_back(make_pair(i, a[i]));
    while (!qb.empty() && qb.back().second >= b[i]) {
      qb.pop_back();
    }
    qb.push_back(make_pair(i, b[i]));
    while (!qa.empty() && !qb.empty() &&
           qa.front().second > qb.front().second) {
      if (qa.front().first < qb.front().first) {
        j = max(j, qa.front().first + 1);
        qa.pop_front();
      } else if (qa.front().first > qb.front().first) {
        j = max(j, qb.front().first + 1);
        qb.pop_front();
      } else {
        j++;
      }
      while (!qa.empty() && qa.front().first < j) qa.pop_front();
      while (!qb.empty() && qb.front().first < j) qb.pop_front();
    }
    if (!qa.empty() && !qb.empty() && qa.front().second == qb.front().second) {
      wyn += min(qa.front().first, qb.front().first) - j + 1;
    }
  }
  cout << wyn;
  return 0;
}
