#include <bits/stdc++.h>
using namespace std;
int main(int argc, char const *argv[]) {
  int n;
  scanf("%d", &n);
  int a[n + 1];
  int b[n + 1];
  for (int i = 1; i <= n; i++) {
    scanf("%d", a + i);
  }
  for (int j = 1; j <= n; j++) {
    scanf("%d", b + j);
  }
  deque<int> mx, mn;
  long long ans = 0;
  for (int i = 1, j = 1; i <= n; i++) {
    while (!mx.empty() && a[mx.back()] <= a[i]) mx.pop_back();
    while (!mn.empty() && b[mn.back()] >= b[i]) mn.pop_back();
    mx.push_back(i);
    mn.push_back(i);
    while (j <= i && a[mx.front()] - b[mn.front()] > 0) {
      j++;
      while (!mx.empty() && mx.front() < j) mx.pop_front();
      while (!mn.empty() && mn.front() < j) mn.pop_front();
    }
    if (!mx.empty() && !mn.empty() && a[mx.front()] == b[mn.front()])
      ans = ans + min(mx.front(), mn.front()) - j + 1;
  }
  printf("%lld\n", ans);
  return 0;
}
