Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

data structures

divide and conquer

hashing

two pointers

*2500

No tag edit access

The problem statement has recently been changed. View the changes.

×
G. Three Occurrences

time limit per test

5 secondsmemory limit per test

512 megabytesinput

standard inputoutput

standard outputYou are given an array $$$a$$$ consisting of $$$n$$$ integers. We denote the subarray $$$a[l..r]$$$ as the array $$$[a_l, a_{l + 1}, \dots, a_r]$$$ ($$$1 \le l \le r \le n$$$).

A subarray is considered good if every integer that occurs in this subarray occurs there exactly thrice. For example, the array $$$[1, 2, 2, 2, 1, 1, 2, 2, 2]$$$ has three good subarrays:

- $$$a[1..6] = [1, 2, 2, 2, 1, 1]$$$;
- $$$a[2..4] = [2, 2, 2]$$$;
- $$$a[7..9] = [2, 2, 2]$$$.

Calculate the number of good subarrays of the given array $$$a$$$.

Input

The first line contains one integer $$$n$$$ ($$$1 \le n \le 5 \cdot 10^5$$$).

The second line contains $$$n$$$ integers $$$a_1$$$, $$$a_2$$$, ..., $$$a_n$$$ ($$$1 \le a_i \le n$$$).

Output

Print one integer — the number of good subarrays of the array $$$a$$$.

Examples

Input

9 1 2 2 2 1 1 2 2 2

Output

3

Input

10 1 2 3 4 1 2 3 1 2 3

Output

0

Input

12 1 2 3 4 3 4 2 1 3 4 2 1

Output

1

Codeforces (c) Copyright 2010-2024 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: May/25/2024 05:06:25 (h2).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|