#include <bits/stdc++.h>
using namespace std;
const long long maxn = 3e5 + 6, inf = 1e18, mod = 1e9 + 7;
struct NODE {
  long long cnt, mn, lazy;
};
long long n, ans;
pair<long long, long long> p[maxn];
NODE seg[maxn * 4ll];
stack<long long> s[2];
void shift(long long v, long long s, long long e) {
  if (seg[v].lazy == 0) return;
  long long lc = v + v, rc = lc + 1, x = seg[v].lazy;
  seg[lc].lazy += x;
  seg[lc].mn += x;
  seg[rc].lazy += x;
  seg[rc].mn += x;
  seg[v].lazy = 0;
}
void add(long long l, long long r, long long x, long long v = 1,
         long long s = 0, long long e = n) {
  if (l >= e || r <= s) return;
  if (l <= s && e <= r) {
    seg[v].lazy += x;
    seg[v].mn += x;
    if (e - s == 1) seg[v].cnt = 1;
    return;
  }
  shift(v, s, e);
  long long mid = (e + s) / 2ll, lc = v + v, rc = lc + 1;
  add(l, r, x, lc, s, mid);
  add(l, r, x, rc, mid, e);
  seg[v].mn = min(seg[lc].mn, seg[rc].mn);
  seg[v].cnt = 0;
  if (seg[v].mn == seg[lc].mn) seg[v].cnt += seg[lc].cnt;
  if (seg[v].mn == seg[rc].mn) seg[v].cnt += seg[rc].cnt;
}
void update(long long i, long long z) {
  long long x = s[i].top();
  s[i].pop();
  long long j;
  if (s[i].empty())
    j = 0;
  else
    j = s[i].top() + 1;
  add(j, x + 1, z * p[x].second);
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n;
  for (long long i = 0; i < n; i++) cin >> p[i].first >> p[i].second;
  sort(p, p + n);
  long long z = 1;
  while (z < n) z *= 2ll;
  for (long long i = 0; i < z; i++) add(i, i + 1, inf);
  for (long long i = 0; i < n; i++) {
    add(i, i + 1, -inf + i);
    while (s[0].size()) {
      if (p[s[0].top()].second > p[i].second)
        update(0, 1);
      else
        break;
    }
    while (s[1].size()) {
      if (p[s[1].top()].second < p[i].second)
        update(1, -1);
      else
        break;
    }
    if (s[0].empty())
      add(0, i + 1, -p[i].second);
    else
      add(s[0].top() + 1, i + 1, -p[i].second);
    if (s[1].empty())
      add(0, i + 1, p[i].second);
    else
      add(s[1].top() + 1, i + 1, p[i].second);
    ans += seg[1].cnt;
    s[0].push(i);
    s[1].push(i);
  }
  cout << ans << endl;
}
