```go
package main
import (
"bufio"
"fmt"
"math/big"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
var n int
fmt.Fscan(in, &n)
counts := make(map[int32]int64)
sum := big.NewInt(0)
term := big.NewInt(0)
for i := 0; i < n; i++ {
var v int32
fmt.Fscan(in, &v)
val := int64(v) * int64(2*i+1-n)
val -= counts[v-1]
val += counts[v+1]
term.SetInt64(val)
sum.Add(sum, term)
counts[v]++
}
fmt.Println(sum.String())
}
```