九度 oj 1126

来源:互联网 发布:现代数据有限公司 编辑:程序博客网 时间:2024/05/16 02:42

题目描述:

在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,
或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。

输入:

每个案例的输入如下:

有2×n+1行输入:第一行是要处理的数组的个数n;
对其余2×n行,第一行是此数组的元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔。

输出:

每个案例输出为n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。

样例输入:
31010 12 12 11 11 12 23 24 12 121512 12 122 112 222 211 222 221 76 36 31 234 256 76 76 1512 14 122 112 222 222 222 221 76 36 31 234 256 76 73
样例输出:
0 72 3 4 5 6 10 120 2 3 10 12 14
来源:
2008年北京大学方正实验室计算机研究生机试真题
#include<iostream>using namespace std;int main(){    int n;    while(cin>>n)    {                                  for(int i=0;i<n;i++)                 {                         int a[81],b[81],ans=0,p,k,x=0;                         int c;                         cin>>c;                         for(int j=0;j<c;j++)                         {                                 cin>>a[j];}                                                                  for( k=0;k<c;k++)                                 {                                                                                                                                                                              if(k==0)                                                                                              {                                                                                                     if(a[k]!=a[k+1])                                                                                                     {                                                                                                                      b[x]=k;                                                                                                                      x++;                                                                                               ans++;                                                                                                                                                                                                     }                                                                                                      }                                                                                                     else if(k!=c-1)                                                                                                      {                                                                                                      if(((a[k]>a[k+1])&&(a[k]>a[k-1]))||((a[k]<a[k+1])&&(a[k]<a[k-1])))                                         {                                                                                                       b[x++]=k;                                                                                               ans++;                                                                                               }}                                                                                                    else  if(k==c-1)                                                                                                      {                                                                                                            if(a[k]>a[k-1]||a[k]<a[k-1])                                                                                                     {                                                                                                                      b[x++]=k;                                                                                                                      ans++;                                                                                               }                                                                                                      }                                                                                                                                                                                                }                                                                                               for(p=0;p<ans-1;p++)                                                                                               {                                                                                                       cout<<b[p]<<" ";                                                                                                       }                                                                                                       cout<<b[p]<<endl;                                                                                                        }                                                                                                       }                                                                                                       }


0 0
原创粉丝点击