#include using namespace std; using ll = long long; #define rep(i, s, t) for (ll i = (ll)s; i < (ll)(t); i++) #define rrep(i, s, t) for (ll i = (ll)(t) - 1; i >= (ll)(s); i--) #define all(x) begin(x), end(x) #define rall(x) rbegin(x), rend(x) #define TT template template bool chmin(T1& x, T2 y) { return x > y ? (x = y, true) : false; } template bool chmax(T1& x, T2 y) { return x < y ? (x = y, true) : false; } struct io_setup { io_setup() { ios::sync_with_stdio(false); std::cin.tie(nullptr); cout << fixed << setprecision(15); srand(time(NULL)); } } io_setup; #include const int MAX = 1'000'000; void solve() { int N; cin >> N; vector L(N), R(N); rep(i, 0, N) { cin >> L[i] >> R[i]; L[i]--; R[i]--; } ll ans = 0; atcoder::fenwick_tree fw1(MAX), fw2(MAX); rrep(i, 0, N) { int l = L[i], r = R[i]; ans += fw1.sum(l + 1, r); ans += fw2.sum(l + 1, r); fw1.add(l, 1); fw2.add(r, 1); } vector> vp; rep(i, 0, N) vp.push_back({R[i], L[i]}); sort(all(vp)); atcoder::fenwick_tree fw3(MAX); for (auto [r, l] : vp) { ans -= fw3.sum(l + 1, r); fw3.add(l, -1); fw3.add(r, 1); } assert(ans % 2 == 0); ans /= 2; cout << ans << "\n"; } int main() { solve(); }