- 题目描述:
 -   在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数, 或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。
 -  
 - 输入:
 -   每个案例的输入如下:
 -   有2×n+1行输入:第一行是要处理的数组的个数n; 对其余2×n行,第一行是此数组的元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔。
 
- 输出:
 -   每个案例输出为n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。
 
- 样例输入:
 -   3
 -   10
 -   10 12 12 11 11 12 23 24 12 12
 -   15
 -   12 12 122 112 222 211 222 221 76 36 31 234 256 76 76
 -   15
 -   12 14 122 112 222 222 222 221 76 36 31 234 256 76 73
 -  
 - 样例输出:
 -   0 7
 -   2 3 4 5 6 10 12
 -   0 2 3 10 12 14
 -  
 
#include<stdio.h>
#include<string.h>
int main(){
    //freopen("input.txt", "r", stdin);
    int n=0;
    scanf("%d", &n);
    while(n--){
        int k=0, num[80]={0},isNotFirst=0;//k代表数字个数,isFirst标志位代表是否为第一个输出数据 
        scanf("%d", &k);
        for(int i=0; i < k; i++){
            scanf("%d", &num[i]);
        }
        for(int i=0; i < k; i++){
            if(i==0){
                if(num[0] < num[1] || num[0] > num[1]) {
                    printf("%d", 0);
                    isNotFirst = 1;
                } 
            }else if(i==k-1){
                if(num[k-1] < num[k-2] || num[k-1] > num[k-2]) {
                    if(isNotFirst) printf(" ");
                    printf("%d", k-1);
                    isNotFirst = 1;
                }
            }else{
                if((num[i] > num[i-1] && num[i] > num[i+1]) || (num[i] < num[i-1] && num[i] < num[i+1])){
                    if(isNotFirst) printf(" ");
                    printf("%d", i);
                    isNotFirst = 1;
                }
            }
        }
        printf("\n"); 
    }
    return 0;
}