#include <bits/stdc++.h>
using namespace std;
int main() {
// your code goes here
int t;
if (cin>>t){
while(t--){
int n;
cin>>n;
vector<int>v(n);
vector<pair<int,int>>a(n);
for(int i=0;i<n;i++){
cin>>v[i];
a[i]={v[i],i};
}
sort(a.begin(),a.end(),greater<pair<int,int>>());
set<int>s;
long long sum = 0;
for (int i=0;i<n;i++){
int val=a[i].first;
int id=a[i].second;
auto it=s.insert(id).first;
// prev greater and second prev greater than v[i]
int j1 = -1, j2 = -1;
auto l=it;
if (l!=s.begin()){
l--;
j1 =*l;
if (l!=s.begin()){
auto ll=l;
ll--;
j2=*ll;
}
}
// next greater and second next greater than v[i]
int i1 = n, i2 = n;
auto r = it;
r++;
if (r!=s.end()){
i1=*r;
auto rr=r;
rr++;
if (rr!=s.end()){
i2=*rr;
}
}
// # of subarrays where v[i] is 2nd max on right side of array
int r_sub=0;
if (i1!=n){
int l_way=id-j1;
int r_way=i2-i1;
r_sub=l_way*r_way;
}
// # of subarrays where v[i] is 2nd max on left side of array
int l_sub=0;
if (j1!=-1){
int l_way=j1-j2;
int r_way=i1-id;
l_sub=l_way*r_way;
}
sum+=(r_sub+l_sub)*val;
}
cout<<sum<<endl;
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIC8vIHlvdXIgY29kZSBnb2VzIGhlcmUKICAgIGludCB0OwogICAgaWYgKGNpbj4+dCl7CiAgICAgICAgd2hpbGUodC0tKXsKICAgICAgICAgICAgaW50IG47CiAgICAgICAgICAgIGNpbj4+bjsKICAgICAgICAgICAgdmVjdG9yPGludD52KG4pOwogICAgICAgICAgICB2ZWN0b3I8cGFpcjxpbnQsaW50Pj5hKG4pOwogICAgICAgICAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICAgICAgICAgIGNpbj4+dltpXTsKICAgICAgICAgICAgICAgIGFbaV09e3ZbaV0saX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydChhLmJlZ2luKCksYS5lbmQoKSxncmVhdGVyPHBhaXI8aW50LGludD4+KCkpOwogICAgICAgICAgICBzZXQ8aW50PnM7CiAgICAgICAgICAgIGxvbmcgbG9uZyBzdW0gPSAwOwogICAgICAgICAgICBmb3IgKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgICAgICAgICBpbnQgdmFsPWFbaV0uZmlyc3Q7CiAgICAgICAgICAgICAgICBpbnQgaWQ9YVtpXS5zZWNvbmQ7CiAgICAgICAgICAgICAgICBhdXRvIGl0PXMuaW5zZXJ0KGlkKS5maXJzdDsKICAgICAgICAgICAgICAgIC8vIHByZXYgZ3JlYXRlciBhbmQgc2Vjb25kIHByZXYgZ3JlYXRlciB0aGFuIHZbaV0KICAgICAgICAgICAgICAgIGludCBqMSA9IC0xLCBqMiA9IC0xOwogICAgICAgICAgICAgICAgYXV0byBsPWl0OwogICAgICAgICAgICAgICAgaWYgKGwhPXMuYmVnaW4oKSl7CiAgICAgICAgICAgICAgICAgICAgbC0tOwogICAgICAgICAgICAgICAgICAgIGoxID0qbDsKICAgICAgICAgICAgICAgICAgICBpZiAobCE9cy5iZWdpbigpKXsKICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBsbD1sOwogICAgICAgICAgICAgICAgICAgICAgICBsbC0tOyAKICAgICAgICAgICAgICAgICAgICAgICAgajI9KmxsOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8vIG5leHQgZ3JlYXRlciBhbmQgc2Vjb25kIG5leHQgZ3JlYXRlciB0aGFuIHZbaV0KICAgICAgICAgICAgICAgIGludCBpMSA9IG4sIGkyID0gbjsKICAgICAgICAgICAgICAgIGF1dG8gciA9IGl0OwogICAgICAgICAgICAgICAgcisrOwogICAgICAgICAgICAgICAgaWYgKHIhPXMuZW5kKCkpewogICAgICAgICAgICAgICAgICAgIGkxPSpyOwogICAgICAgICAgICAgICAgICAgIGF1dG8gcnI9cjsKICAgICAgICAgICAgICAgICAgICBycisrOyAKICAgICAgICAgICAgICAgICAgICBpZiAocnIhPXMuZW5kKCkpewogICAgICAgICAgICAgICAgICAgICAgICBpMj0qcnI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gIyBvZiBzdWJhcnJheXMgd2hlcmUgdltpXSBpcyAybmQgbWF4IG9uIHJpZ2h0IHNpZGUgb2YgYXJyYXkKICAgICAgICAgICAgICAgIGludCByX3N1Yj0wOwogICAgICAgICAgICAgICAgaWYgKGkxIT1uKXsKICAgICAgICAgICAgICAgICAgICBpbnQgbF93YXk9aWQtajE7CiAgICAgICAgICAgICAgICAgICAgaW50IHJfd2F5PWkyLWkxOwogICAgICAgICAgICAgICAgICAgIHJfc3ViPWxfd2F5KnJfd2F5OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gIyBvZiBzdWJhcnJheXMgd2hlcmUgdltpXSBpcyAybmQgbWF4IG9uIGxlZnQgc2lkZSBvZiBhcnJheQogICAgICAgICAgICAgICAgaW50IGxfc3ViPTA7CiAgICAgICAgICAgICAgICBpZiAoajEhPS0xKXsKICAgICAgICAgICAgICAgICAgICBpbnQgbF93YXk9ajEtajI7CiAgICAgICAgICAgICAgICAgICAgaW50IHJfd2F5PWkxLWlkOwogICAgICAgICAgICAgICAgICAgIGxfc3ViPWxfd2F5KnJfd2F5OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgc3VtKz0ocl9zdWIrbF9zdWIpKnZhbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb3V0PDxzdW08PGVuZGw7CiAgICAgICAgfQogICAgfQp9