#include <cstdint>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

using ll = int64_t;
const ll MAX_N = 100000;

struct Sm {
    vector<ll> tree;
    ll n;
    Sm(ll size) {
        n = size;
        tree.assign(n + 1, 0);
    }
    void update(ll i, ll v) {
        while (i <= n) {
            tree[i] += v;
            i += i & -i;
        }
    }
    ll query(ll i) {
        ll sum = 0;
        while (i) {
            sum += tree[i];
            i -= i & -i;
        }
        return sum;
    }
    ll query(ll l, ll r) {
        if (l > r) return 0;
        return query(r) - query(l - 1);
    }
};

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    ll k;
    cin >> k;
    vector<ll> arr(MAX_N + 1);
    for (ll i = 1; i <= MAX_N; i++) {
        arr[i] = i;
    }
    for (ll i = 0; i < k; i++) {
        ll x, y;
        cin >> x >> y;
        if (x <= MAX_N && y <= MAX_N) {
            swap(arr[x], arr[y]);
        }
    }
    Sm sm(MAX_N);
    long long ans = 0;
    for (ll j = 1; j <= MAX_N; j++) {
        if (arr[j] < MAX_N) {
            ans += sm.query(arr[j] + 1, MAX_N);
        }
        sm.update(arr[j], 1);
    }
    cout << ans << endl;
    return 0;
}

/*

初始化：首先，初始化一个数组arr，其中arr[i] = i，表示初始状态下第i天的温度是i。
模拟交换：读取每次交换操作，如果交换的两个位置都在1到100,000的范围内，则交换数组中这两个位置的值。
计算逆序对：
使用树状数组（Fenw）来高效计算逆序对数量。
遍历数组，对于每个元素arr[j]，查询树状数组中值大于arr[j]的元素数量（这些元素位于j之前），并将这个数量累加到答案中。
将当前元素arr[j]插入树状数组，以便后续查询。
输出结果：最终累加的逆序对数量即为答案。

*/