fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int t;
  6. cin >> t;
  7. while(t--){
  8. int n;
  9. cin >> n;
  10. int a[n];
  11. for(int i=0;i<n;i++){
  12. cin >> a[i];
  13. }
  14. int ans(0);
  15. for(int i=0;i<n;i++){
  16. vector<int> st;
  17. st.push_back(a[i]);
  18. int flag(0);
  19. int ind(-1);
  20. for(int j=i+1;j<n;j++){
  21. st.push_back(a[j]);
  22. int len = st.size();
  23. if(len >= 3){
  24.  
  25. for(int k = 0;k<len;k++){
  26. // cout << k << " k" << endl;
  27. for(int l=k+1;l<len;l++){
  28. for(int m=l+1;m<len;m++){
  29. // cout << k << " " << l << " " << m << " " << st.size() << endl;
  30. // cout << st[k] << " a " << st[l] << " " << st[m] << endl;
  31. if(st[k] >= st[l] && st[l] >= st[m]){
  32.  
  33. // cout << st[k] << " a " << st[l] << " " << st[m] << endl;
  34. flag = 1;
  35. break;
  36. }
  37. if(st[k] <= st[l] && st[l] <= st[m]){
  38. // cout << st[k] << " b " << st[l] << " " << st[m] << endl;
  39. flag = 1;
  40. break;
  41. }
  42.  
  43. }
  44. if(flag == 1){
  45. break;
  46. }
  47. }
  48. if(flag == 1){
  49. break;
  50. }
  51. }
  52.  
  53. }
  54. if(flag == 1){
  55. ind = j;
  56. break;
  57. }
  58. }
  59. // cout << ind << endl;
  60. if(ind == -1){
  61. ans += n-i;
  62. }
  63. else{
  64. ans += ind- i;
  65. }
  66. }
  67. cout << ans << endl;
  68. }
  69. return 0;
  70. }
Success #stdin #stdout 0.01s 5392KB
stdin
3
4
2 4 1 3
5
6 9 1 9 6
2
13 37
stdout
10
12
3