Odd Gnome
本来是简单的签到题, 结果WA了两发才AC。
简单的模拟,而不是找规律,所以…老老实实的做吧。
解法: 分析样例的数据特点,然后就A了…
a[i] > a[i + 1] && a[i] > a[i - 1] && a[i - 1] < a[i + 1] )
或者 ( a[i - 1] < a[i + 1] && a[i] < a[i + 1] && a[i] < a[i - 1]))
在这两种条件下,条件成立直接输出标号即可
#include<stdio.h>
int a[1005];
int main()
{
int n, g;
scanf("%d",&n);
while(n--)
{
scanf("%d",&g);
for(int i = 1; i <= g; i++)
{
scanf("%d",&a[i]);
}
for (int i = 2; i < g; i++)
if ((a[i] > a[i + 1] && a[i] > a[i - 1] && a[i - 1] < a[i + 1] )
|| ( a[i - 1] < a[i + 1]&& a[i] < a[i + 1] && a[i] < a[i - 1]))
{
printf("%d\n", i);
}
}
return 0;
}