TOJ 4981: 正负波动

来源:互联网 发布:Ubuntu 12 开机启动 编辑:程序博客网 时间:2024/05/18 02:44

4981: 正负波动

描述

给定一系列数据,问这些数据是否在正数和负数之间波动,如果数据中有0,先删除0后再考虑波动情况。

比如:1 -1 2 -2 4 -3为正负波动的,而1 2 -1 2不是正负波动的,因为存在相邻的数据1和2,其符号相同。


输入

输入数据的第一行为整数n(3<=n<=20),表示数据的个数。

第二行为n个整数,其中至少有3个非0数据。


输出

若数据呈现正负波动,输出Yes,否则输出No。


样例输入

5
1 -1 2 0 -2

样例输出

Yes

代码

#include <stdio.h>
int main()
{
int n,a[20],b[20],i,s=0,d=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]!=0)
{b[s]=a[i];
s++;}
}
for(i=1;i<s;i++)
{
if(b[i-1]>0)
{
if(b[i]<0)
d++;
}
if(b[i-1]<0)
{
if(b[i]>0)
d++;
}
}
if(d==s-1)
printf("Yes\n");
else
printf("No\n");
return 0;
}