Doremy's City Construction
Contest: Codeforces Global Round 24
Difficulty rating: 1400
Tags: graphs, greedy

Doremy's new city is under construction! The city can be regarded as a simple undirected graph with $$$n$$$ vertices. The $$$i$$$-th vertex has altitude $$$a_i$$$. Now Doremy is deciding which pairs of vertices should be connected with edges.

Due to economic reasons, there should be no self-loops or multiple edges in the graph.

Due to safety reasons, there should not be pairwise distinct vertices $$$u$$$, $$$v$$$, and $$$w$$$ such that $$$a_u \leq a_v \leq a_w$$$ and the edges $$$(u,v)$$$ and $$$(v,w)$$$ exist.

Under these constraints, Doremy would like to know the maximum possible number of edges in the graph. Can you help her?

Note that the constructed graph is allowed to be disconnected.

Input format:
The input consists of multiple test cases. The first line contains a single integer $$$t$$$ ($$$1\le t\le 10^4$$$) — the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer $$$n$$$ ($$$2 \le n \le 2\cdot 10^5$$$) — the number of vertices.

The second line of each test case contains $$$n$$$ integers $$$a_1, a_2, \dots, a_n$$$ ($$$1\le a_i\le 10^6$$$) — the altitudes of each vertex.

It is guaranteed that the sum of $$$n$$$ over all test cases does not exceed $$$2 \cdot 10^5$$$.

Output format:
For each test case, output the maximum possible number of edges in the graph.

Constraints:
Time limit: 1.0 s
Memory limit: 256.0 MB

Note:
In the first test case, there can only be at most $$$3$$$ edges in the graph. A possible construction is to connect $$$(1,3)$$$, $$$(2,3)$$$, $$$(3,4)$$$. In the picture below the red number above node $$$i$$$ is $$$a_i$$$.

The following list shows all such $$$u$$$, $$$v$$$, $$$w$$$ that the edges $$$(u,v)$$$ and $$$(v,w)$$$ exist.

- $$$u=1$$$, $$$v=3$$$, $$$w=2$$$;
- $$$u=1$$$, $$$v=3$$$, $$$w=4$$$;
- $$$u=2$$$, $$$v=3$$$, $$$w=1$$$;
- $$$u=2$$$, $$$v=3$$$, $$$w=4$$$;
- $$$u=4$$$, $$$v=3$$$, $$$w=1$$$;
- $$$u=4$$$, $$$v=3$$$, $$$w=2$$$.

Another possible construction is to connect $$$(1,4)$$$, $$$(2,4)$$$, $$$(3,4)$$$.

An unacceptable construction is to connect $$$(1,3)$$$, $$$(2,3)$$$, $$$(2,4)$$$, $$$(3,4)$$$. Because when $$$u=4$$$, $$$v=2$$$, $$$w=3$$$, $$$a_u\le a_v \le a_w$$$ holds, and the respective edges exist.

Example input:
4
4
2 2 3 1
6
5 2 3 1 5 2
12
7 2 4 9 1 4 6 3 7 4 2 3
4
1000000 1000000 1000000 1000000

Example output:
3
9
35
2

Editorial:
We can first assume that no edge links two vertices with the same value, then for each vertex $$$u$$$ and his neighbors $$$S_u$$$, either $$$a_u>\max\limits_{v\in S_u}a_v$$$ or $$$a_u<\min\limits_{v\in S_u}a_v$$$. If $$$a_u>\max\limits_{v\in S_u}a_v$$$, we paint $$$u$$$ black, otherwise we paint it white. Then it's obviously that any edge connects two vertices with different color.
So we can first determine the color of each vertex and then add as many as edges according to the color. $$$(u,v)$$$ is addable only when $$$u$$$ is black, $$$v$$$ is white and $$$a_u>a_v$$$. If we paint $$$u$$$ black and $$$v$$$ white and $$$a_u<a_v$$$, we can swap the colors and the edges connecting to these 2 vertices and the answer will be no worse. So the best painting plan is determining a value $$$A$$$, painting $$$u$$$ black if and only if $$$a_u\ge A$$$, painting $$$u$$$ white if and only if $$$a_u<A$$$.
If we add an edge linking two vertices with the same value, then the two vertices can not connect other vertices. This plan will only be considered when $$$a_1=a_2=\cdots=a_n$$$. When $$$a_1=a_2=\cdots=a_n$$$, the answer is $$$\lfloor\frac{n}{2}\rfloor$$$.