#include <bits/stdc++.h>
int n, g[300004];
int _max[300004], _min[300004], ct[2 * 300004] = {0};
long long ans = 0;
void solve(int l, int r) {
  if (l == r) {
    ans++;
    return;
  }
  int m = (l + r) >> 1, i;
  _max[m] = _min[m] = g[m];
  _max[m + 1] = _min[m + 1] = g[m + 1];
  for (i = m + 2; i <= r; i++) {
    _max[i] = ((_max[i - 1]) > (g[i]) ? (_max[i - 1]) : (g[i]));
    _min[i] = ((_min[i - 1]) < (g[i]) ? (_min[i - 1]) : (g[i]));
  }
  for (i = m - 1; i >= l; i--) {
    _max[i] = ((_max[i + 1]) > (g[i]) ? (_max[i + 1]) : (g[i]));
    _min[i] = ((_min[i + 1]) < (g[i]) ? (_min[i + 1]) : (g[i]));
  }
  for (i = l; i < m; i++) {
    int end = i + _max[i] - _min[i];
    if (end > m && end <= r && _max[end] < _max[i] && _min[end] > _min[i])
      ans++;
  }
  for (i = r; i > m + 1; i--) {
    int begin = i - _max[i] + _min[i];
    if (begin <= m && begin >= l && _max[begin] < _max[i] &&
        _min[begin] > _min[i])
      ans++;
  }
  int ymax = m, ymin = m;
  for (i = m + 1; i <= r; i++) {
    while (ymin >= l && _min[i] < _min[ymin]) {
      ct[_max[ymin] + ymin]++;
      ymin--;
    }
    while (ymax > ymin && _max[i] > _max[ymax]) {
      ct[_max[ymax] + ymax]--;
      ymax--;
    }
    ans += ct[_min[i] + i];
  }
  for (i = l; i <= m; i++) ct[_max[i] + i] = 0;
  ymax = ymin = m + 1;
  for (i = m; i >= l; i--) {
    while (ymax <= r && _min[i] < _min[ymax]) {
      ct[_max[ymax] - ymax + 300004]++;
      ymax++;
    }
    while (ymin < ymax && _max[i] > _max[ymin]) {
      ct[_max[ymin] - ymin + 300004]--;
      ymin++;
    }
    ans += ct[_min[i] - i + 300004];
  }
  for (i = m + 1; i <= r; i++) ct[_max[i] - i + 300004] = 0;
  solve(l, m);
  solve(m + 1, r);
}
int main() {
  int i, r, c;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%d%d", &r, &c);
    g[r - 1] = c - 1;
  }
  solve(0, n - 1);
  printf("%I64d\n", ans);
  return 0;
}
