#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define eb emplace_back
#define mk make_pair
#define fi first
#define se second
#define mset(a, b) memset(a, b, sizeof(a))
#define DBG(x) cout << "[" << #x << "]: " << x << endl
using ll = long long;
using pii = pair<int, int>;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#ifdef _WIN32
#define getchar_unlocked _getchar_nolock
#endif

template<class Ty> Ty randint(Ty a, Ty b) { return uniform_int_distribution<Ty>(a, b)(rng); }
template<class num> inline void rd(num& x) {
	char c, neg = 0; while(isspace(c = getchar_unlocked()));
	if(!isdigit(c)) neg = (c == '-'), x = 0;
	else x = c - '0';
	while(isdigit(c = getchar_unlocked())) x = (x << 3) + (x << 1) + c - '0';
	x = neg ? -x : x; }
template <class Ty, class... Args> inline void rd(Ty& x, Args&... args) { rd(x); rd(args...); }

const int MAXN = 2e5 + 5, INF = 0x3f3f3f3f;

ll get(ll n) {
	return n * (n + 1) / 2;
}

int main() {
	int n; rd(n);
	ll ans = 0;
	for (int i = 0; i < n; i++) {
		ll l, r; rd(l, r);
		ans += get(r) - get(l-1);
	}
	printf("%lld\n", ans);
	
}

#include <iostream>
#include <stdio.h>
#include <vector>
#include <map>
#include <stack>
#include <cstring>
#include <set>
#include <utility>
#include <iostream>
#include <iomanip>
#include <list>
#include <queue>
#include <algorithm>
#include <cmath>
#include <cctype>
//#include <boost/multiprecision/cpp_int.hpp>
#include <unordered_set>
#include <bitset>
#include <cassert>
#include <numeric>
#include <complex>
#define FOR(i,a,b) for (ll i=(a);i<(ll)(b);++i)
#define REP(i,n) FOR(i,0,n)
#define ALL(v) (v).begin(),(v).end()
#define SUM(v) accumulate(ALL(v),0ll)
using ll = long long;
const ll INF=1e24;
const ll eps=1;
const double pi=3.14159265359;
const ll mod=1e9+7;
using I32 = int32_t;
using I64 = int64_t;
using namespace std;
//Union Find テンプレ
struct UnionFind {
  vector<int> par , siz;
  UnionFind(int n) : par(n,-1) , siz(n,1) { }
  int root(int x) {
    if(par[x] == -1) return x;
    else return par[x] = root(par[x]);
  }
  bool issame(int x, int y) {
    return root(x) == root(y);
  }
  bool unite(int x, int y) {
    x = root(x) ; y = root(y);
    if(x == y) return false;
    if(siz[x] < siz[y]) swap(x,y);
    par[y] = x;
    siz[x] += siz[y];
    return true;
  }
  int size(int x) {
    return siz[root(x)];
  }
};
typedef pair<int,int> P;
int func(int a,int b)
{
  if(b==0)return a;
  return func(b,a%b);
}
int main()
{
  ll n;
  cin>>n;
  ll ans=0;
  ll a,b;
  REP(i,n)
  {
    cin>>a>>b;
    ans+=(a+b)*(b-a+1)/2;
  }
  cout<<ans<<endl;
return 0;
}