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. 
class BIT():
    """一点加算、区間取得クエリをそれぞれO(logN)で答える
    add: i番目にvalを加える
    get_sum: 区間[l, r)の和を求める
    i, l, rは0-indexed
    """
    def __init__(self, n):
        self.n = n
        self.bit = [0] * (n + 1)

    def _sum(self, i):
        s = 0
        while i > 0:
            s += self.bit[i]
            i -= i & -i
        return s

    def add(self, i, val):
        """i番目にvalを加える"""
        i = i + 1
        while i <= self.n:
            self.bit[i] += val
            i += i & -i

    def get_sum(self, l, r):
        """区間[l, r)の和を求める"""
        return self._sum(r) - self._sum(l)


      

def add1(ind_li, val):
    for i in ind_li:
        st.add(i, val)

def cnt1(ind_li):
    for i in ind_li:
        cnt.add(i, 1)

def calc(ind_li, val):
    res = 0
    for i in ind_li:
        res1 = st.get_sum(0, i) - val * cnt.get_sum(0, i)
        res2 = st.get_sum(i+1, n) - val * cnt.get_sum(i+1, n)
        res += res2 - res1
    return res
  
n = int(input())
a = list(map(int, input().split()))
st = BIT(n)
cnt = BIT(n)

b = sorted(zip(a, range(len(a))))
b = b + [(b[-1][0] + 1, b[-1][1])]
prev = 0
now = b[0][0]
tmp_now = []
tmp_prev = []
ans = 0

for i in range(n+1):
    if now == b[i][0]:
        tmp_now.append(b[i][1])
        continue
    if prev + 1 == now:
        # 計算する
        ans += calc(tmp_now, now)
        # prevを追加する
        add1(tmp_prev, prev)
        cnt1(tmp_prev)
    else:
        # prevを追加する
        add1(tmp_prev, prev)
        cnt1(tmp_prev)
        # 計算する
        ans += calc(tmp_now, now)
    prev = now
    tmp_prev = tmp_now[0:]
    tmp_now = [b[i][1]]
    now = b[i][0]
        
print(ans)

 		      		     		  		 	 		 			