← Home
package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	var n int
	fmt.Fscan(in, &n)
	a := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Fscan(in, &a[i])
	}
	const MAX = 100001
	minp := make([]int, MAX)
	maxp := make([]int, MAX)
	for i := range minp {
		minp[i] = -1
		maxp[i] = -1
	}
	for i := 0; i < n; i++ {
		val := a[i]
		if minp[val] == -1 {
			minp[val] = i + 1
		}
		maxp[val] = i + 1
	}
	var mins []int
	for val := 1; val < MAX; val++ {
		if minp[val] != -1 {
			mins = append(mins, minp[val])
		}
	}
	sort.Ints(mins)
	var ans int64 = 0
	for val := 1; val < MAX; val++ {
		if maxp[val] != -1 {
			R := maxp[val]
			idx := sort.SearchInts(mins, R)
			ans += int64(idx)
		}
	}
	fmt.Println(ans)
}