/*
▄████▄ █ ██ ██▀███ ██████ ▓█████ ▓█████▄ ███▄ █ ██▓ ███▄ █ ▄▄▄██▀▀▀▄▄▄
▒██▀ ▀█ ██ ▓██▒▓██ ▒ ██▒▒██ ▒ ▓█ ▀ ▒██▀ ██▌ ██ ▀█ █ ▓██▒ ██ ▀█ █ ▒██ ▒████▄
▒▓█ ▄ ▓██ ▒██░▓██ ░▄█ ▒░ ▓██▄ ▒███ ░██ █▌ ▓██ ▀█ ██▒▒██▒▓██ ▀█ ██▒ ░██ ▒██ ▀█▄
▒▓▓▄ ▄██▒▓▓█ ░██░▒██▀▀█▄ ▒ ██▒▒▓█ ▄ ░▓█▄ ▌ ▓██▒ ▐▌██▒░██░▓██▒ ▐▌██▒▓██▄██▓ ░██▄▄▄▄██
▒ ▓███▀ ░▒▒█████▓ ░██▓ ▒██▒▒██████▒▒░▒████▒░▒████▓ ▒██░ ▓██░░██░▒██░ ▓██░ ▓███▒ ▓█ ▓██▒
░ ░▒ ▒ ░░▒▓▒ ▒ ▒ ░ ▒▓ ░▒▓░▒ ▒▓▒ ▒ ░░░ ▒░ ░ ▒▒▓ ▒ ░ ▒░ ▒ ▒ ░▓ ░ ▒░ ▒ ▒ ▒▓▒▒░ ▒▒ ▓▒█░
░ ▒ ░░▒░ ░ ░ ░▒ ░ ▒░░ ░▒ ░ ░ ░ ░ ░ ░ ▒ ▒ ░ ░░ ░ ▒░ ▒ ░░ ░░ ░ ▒░ ▒ ░▒░ ▒ ▒▒ ░
░ ░░░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ▒
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░ ░
*/
#include <bits/stdc++.h>
using namespace std;
#define nl "\n"
#define ll long long int
#define INF int(1e9)
#define LINF 1e18
#pragma GCC optimize("O3")
#pragma GCC target("sse4")
bool find(int a[], int l, int r)
{
for (int i = l; i < r; i++)
{
for (int j = i + 1; j < r; j++)
{
for (int k = j + 1; k < r; k++)
{
if ((a[i] <= a[j] && a[j] <= a[k]) || (a[i] >= a[j] && a[j] >= a[k]))
{
return true;
}
}
}
}
return false;
}
void solve(int tc)
{
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
ll ans = n + max(n - 1, 0) + max(n - 2, 0) + max(n - 3, 0);
for (int i = 0; i <= n - 3; i++)
{
if (find(a, i, i + 3))
ans--;
}
for (int i = 0; i <= n - 4; i++)
{
if (find(a, i, i + 4))
ans--;
}
cout << ans << nl;
}
int main()
{
// #ifndef ONLINE_JUDGE
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
// #endif
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int T = 1;
cin >> T;
for (int t = 1; t <= T; t++)
{
// cout << "Case #" << t << ": ";
solve(t);
}
}
206. Reverse Linked List | 83. Remove Duplicates from Sorted List |
116. Populating Next Right Pointers in Each Node | 145. Binary Tree Postorder Traversal |
94. Binary Tree Inorder Traversal | 101. Symmetric Tree |
77. Combinations | 46. Permutations |
226. Invert Binary Tree | 112. Path Sum |
1556A - A Variety of Operations | 136. Single Number |
169. Majority Element | 119. Pascal's Triangle II |
409. Longest Palindrome | 1574A - Regular Bracket Sequences |
1574B - Combinatorics Homework | 1567A - Domino Disaster |
1593A - Elections | 1607A - Linear Keyboard |
EQUALCOIN Equal Coins | XOREQN Xor Equation |
MAKEPAL Weird Palindrome Making | HILLSEQ Hill Sequence |
MAXBRIDGE Maximise the bridges | WLDRPL Wildcard Replacement |
1221. Split a String in Balanced Strings | 1002. Find Common Characters |
1602A - Two Subsequences | 1555A - PizzaForces |