点点是一名出色的狼人。众所周知,狼人只有在满月之夜才会变成狼。
同时,月亮的大小随着时间变化,它的大小变化30天为一循环。它的变化情况(从第一天开始)为0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 然后又再一次循环。
今年夏天点点很无聊,于是开始看月亮。由于点点很忙,所以他只选择一段连续的时间看月亮,并把月亮的大小记录了下来。
现在,他告诉你他记录下东西,让你告诉他下一天(即点点记录下的最后一天的第二天)的月亮是比前一天(即点点记录下的最后一天)大还是小。
输入描述:
给你一个正整数n表示点点记录下的时间个数。 下一行n个自然数表示点点记录下的月亮大小。
输出描述:
一个字符串。 如果下一天的比前一天的大则输出"UP" 如果下一天的比前一天的小则输出"DOWN" 如果无法判断则输出"-1"
by talk:首先看0-15为增区间,15-1为减区间。当n=1时是特殊情况。如果n=1,第一个数是0(下一个一定为1)输出UP,第一个数是15(下一个一定为14)输出DOWN,其他情况不能确定(因为增见区间都有1-14)。然后就是n>1的情况:倒数第2的数即a[n-2]<倒数第1的数a[n-1]并且倒数第1的数a[n-1]不为15(若a[n-1]为15,下一个数一定为14,减少)输出UP;反之,倒数第2个数a[n-2]>倒数第1个数a[n-1]并且a[n-1]不为0(若a[n-1]为0,则下一个数一定为1,增加)输出DOWN。其他情况输出DOWN。
#include<stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
int a[100];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
if(n<1)
puts("-1\n");
else if(n==1)
{
if(a[0]==0)
printf("UP\n");
else if(a[0]==15)
printf("DOWN\n");
else
printf("-1\n");
}
else
{
if(a[n-2]<a[n-1]&&a[n-1]!=15)
printf("UP\n");
else if(a[n-2]>a[n-1]&&a[n-1])
printf("DOWN\n");
else
printf("DOWN\n");
}
return 0;
}