您的位置:首页 > 其它

NYOJ370-波动序列

2014-04-07 11:54 134 查看
波动序列

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

描述

有一个长度为N的整数序列,序列里面的数是两两不同的,现在要在里面找一个波动序列,这个序列越长越好。

比如有波动序列{a0,a1,a2…an-1},则a0 > a1 < a2 > a3 < …

输入

第一行输入一个数T,代表有T个任务,T不大于50。

对于每个任务,输入格式为

N a0 a1 a2 … aN-1

其中N<=30000,测试数据保证序列的数两两不同。

输出

对于每个任务,输出最长的波动序列长度

样例输入

4

5 1 2 3 4 5

5 5 4 3 2 1

5 5 1 4 2 3

5 2 4 1 3 5

样例输出

1

2

5

3

来源

GDUT校赛

AC代码:

#include<stdio.h>
int a[30010];
int main()
{
int i,n,m,sum,count,x;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
sum=1;
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
x=1;count=a[0];
for(i=1;i<m;i++)
{

if(x==1&&count>a[i])
{sum++;x=2;}
else
if(x==2&&count<a[i])
{sum++;x=1;}
count=a[i];
}
printf("%d\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: