浙江财经大学
信息管理与工程学院

Codeforces Round #373 (Div. 2) A – Vitya in the Countryside

本文由 Ocrosoft 于 2016-09-24 19:21:31 发表
A. Vitya in the Countryside
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Every summer Vitya comes to visit his grandmother in the countryside. This summer, he got a huge wart. Every grandma knows that one should treat warts when the moon goes down. Thus, Vitya has to catch the moment when the moon is down.

Moon cycle lasts 30 days. The size of the visible part of the moon (in Vitya’s units) for each day is 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, and then cycle repeats, thus after the second 1 again goes 0.

As there is no internet in the countryside, Vitya has been watching the moon for n consecutive days and for each of these days he wrote down the size of the visible part of the moon. Help him find out whether the moon will be up or down next day, or this cannot be determined by the data he has.

Input

The first line of the input contains a single integer n (1 ≤ n ≤ 92) — the number of consecutive days Vitya was watching the size of the visible part of the moon.

The second line contains n integers ai (0 ≤ ai ≤ 15) — Vitya’s records.

It’s guaranteed that the input data is consistent.

Output

If Vitya can be sure that the size of visible part of the moon on day n + 1 will be less than the size of the visible part on day n, then print “DOWN” at the only line of the output. If he might be sure that the size of the visible part will increase, then print “UP“. If it’s impossible to determine what exactly will happen with the moon, print -1.

Examples
input
5
3 4 5 6 7

output
UP

input
7
12 13 14 15 14 13 12

output
DOWN

input
1
8

output
-1

Note

In the first sample, the size of the moon on the next day will be equal to 8, thus the answer is “UP“.

In the second sample, the size of the moon on the next day will be 11, thus the answer is “DOWN“.

In the third sample, there is no way to determine whether the size of the moon on the next day will be 7 or 9, thus the answer is -1.

Solution

题意:月亮的可见大小在一个月里的变化是0,1,2,3,4,…,3,2,1;然后在一段时间内观测到了月亮的可见大小的变化,例如是3 4 5 6 7,需要找出最后一天的下一天月亮可见大小会增加还是减少。
思路:对于只有一个数的情况,除了0和15都是无法确定的。如果有两个及以上的数,只需要取出最后两个数,去跟标准的比(题目保证数据是真实观测到的,也就是一定能找到),如果后一个比前一个大则说明正在增加,否则就减小。另外就是要判断一下结尾是15的情况,下一天是14,所以是DOWN的。

#include <set>
#include <map>
#include <list>
#include <cmath>
#include <stack>
#include <queue>
#include <ctime>
#include <string>
#include <cstdio>
#include <vector>
#include <cctype>
#include <climits>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <functional>
//#include "Osort.h"
#define ms(a) memset(a,0,sizeof(a))
typedef long long LL;
const LL LINF = 1e17;
const int INF = INT_MAX / 2;
const int MAXN = 150 + 10;
const int MOD = 100000;
int gcd(int a, int b)
{
	if (!b)return a;
	return gcd(b, a%b);
}
using namespace std;
//or2..or2..or2..or2..//
int main()
{
	int a[] = { 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 };
	int n;cin >> n;
	int b[100];
	for (int i = 0; i < n; i++)scanf("%d", &b[i]);
	if (b[n - 1] == 0)printf("UP\n");
	else if (b[n - 1] == 15)printf("DOWN\n");
	else if (n == 1)printf("-1\n");
	else
	{
		int t1 = b[n - 2], t2 = b[n - 1];
		for (int i = 0; i < 29; i++)
		{
			if (a[i] == t1&&a[i + 1] == t2)
				if (t1 < t2)printf("UP\n");
				else printf("DOWN\n");
		}
	}
	return 0;
}

欢迎分享与转载,请保留链接与出处。Ocrosoft » Codeforces Round #373 (Div. 2) A – Vitya in the Countryside

点赞 (0)or拍砖 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址