ProblemB V字型数列,当且仅当三元组i<j<k,且 a[i]>a[j]并且a[k]>a[j],算作一个V型数列。
输入
第一行为测试数据组数T
每组数据第一行为该数组的数字个数
接下来一行为数组元素
输出:
输出对应数组中符合v字形数列的个数
测试数据:
2
3
2 1 2
5
2 1 2 1 2
输出:
1
4
#include
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<memory.h>
#include<string.h>
#include
#include
int t;
while(scanf("%d",&t)!=EOF){
while(t--){
int x=0;
scanf("%d",&x);
for(int i=0;i<x;i++){
scanf("%d",&ans[i]);
}
int cnt=0;
for(int i=0;i<x;i++){
int l=0,r=0;
for(int j=i-1;j>=0;j--){
if(ans[j]>ans[i]){
l++; //这个题目中是有提示的
}
}
for(int k=i+1;k<x;k++){
if(ans[k]>ans[i]) r++; //左边走和右边走是分别进行的
}
cnt+=l*r;
}
printf("%d\n",cnt);
}
}
return 0;
}