Let's denote a function 

<image>

You are given an array a consisting of n integers. You have to calculate the sum of d(ai, aj) over all pairs (i, j) such that 1 ≤ i ≤ j ≤ n.

Input

The first line contains one integer n (1 ≤ n ≤ 200000) — the number of elements in a.

The second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 109) — elements of the array. 

Output

Print one integer — the sum of d(ai, aj) over all pairs (i, j) such that 1 ≤ i ≤ j ≤ n.

Examples

Input

5
1 2 3 1 3


Output

4


Input

4
6 6 5 5


Output

0


Input

4
6 6 4 4


Output

-8

Note

In the first example:

  1. d(a1, a2) = 0; 
  2. d(a1, a3) = 2; 
  3. d(a1, a4) = 0; 
  4. d(a1, a5) = 2; 
  5. d(a2, a3) = 0; 
  6. d(a2, a4) = 0; 
  7. d(a2, a5) = 0; 
  8. d(a3, a4) = - 2; 
  9. d(a3, a5) = 0; 
  10. d(a4, a5) = 2. 
#include <bits/stdc++.h>
using namespace std;
const int mod = (int)1e9 + 7;
void add(int& x, int y) {
  if ((x += y) >= mod) {
    x -= mod;
  }
}
int sum(int x, int y) {
  add(x, y);
  return x;
}
int diff(int& x, int y) {
  if ((x -= y) < 0) {
    x += mod;
  }
}
int sub(int x, int y) {
  diff(x, y);
  return x;
}
int mult(int x, int y) { return (long long)x * y % mod; }
int power(int x, long long p) {
  int res = 1;
  while (p) {
    if (p & 1) {
      res = mult(res, x);
    }
    x = mult(x, x);
    p >>= 1;
  }
  return res;
}
int inv(int x) { return power(x, mod - 2); }
const int inf = (int)1.01e9;
const long double eps = 1e-8;
const long double pi = acos(-1.0L);
const int maxn = (int)2e5 + 100;
unsigned long long a[maxn];
map<unsigned long long, int> cnt;
void solve() {
  int n;
  cin >> n;
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  unsigned long long sum = 0, cnt1 = 0, cnt2 = 0;
  for (int i = 0; i < n; ++i) {
    unsigned long long cur = 0, cntt = 0;
    if (cnt.count(a[i] - 1)) {
      cur += 1ll * (a[i] - 1) * cnt[a[i] - 1];
      cntt += cnt[a[i] - 1];
    }
    if (cnt.count(a[i])) {
      cur += 1ll * a[i] * cnt[a[i]];
      cntt += cnt[a[i]];
    }
    if (cnt.count(a[i] + 1)) {
      cur += 1ll * (a[i] + 1) * cnt[a[i] + 1];
      cntt += cnt[a[i] + 1];
    }
    cnt1 += 1ll * a[i] * (i - cntt);
    cnt2 += (sum - cur);
    ++cnt[a[i]];
    sum += a[i];
  }
  if (cnt1 >= cnt2) {
    cout << cnt1 - cnt2;
  } else {
    cnt2 -= cnt1;
    cout << '-' << cnt2;
  }
  cout << endl;
}
void precalc() {}
void clear() {}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0), cout.tie(0);
  cout.precision(5);
  srand((unsigned int)time(0));
  cout << fixed;
  precalc();
  int task_count = 1;
  for (int i = 1; i <= task_count; ++i) {
    solve();
    clear();
  }
  return 0;
}
