洛谷-P1152 欢乐的跳

洛谷-P1152 欢乐的跳

原题链接:https://www.luogu.com.cn/problem/P1152


题目描述

一个\(n\)个元素的整数数组,如果数组两个连续元素之间差的绝对值包括了\([1,n-1]\)之间的所有整数,则称之符合“欢乐的跳”,如数组\(1 4 2 3\)符合“欢乐的跳”,因为差的绝对值分别为:\(3,2,1\)

给定一个数组,你的任务是判断该数组是否符合“欢乐的跳”。

输入格式

每组测试数据第一行以一个整数\(n(1 \le n \le 1000)\)开始,接下来\(n\)个空格隔开的在[\(−10^8,10^8\)]之间的整数。

输出格式

对于每组测试数据,输出一行若该数组符合“欢乐的跳”则输出"Jolly",否则输出"Not jolly"。

输入输出样例

输入 #1

4 1 4 2 3

输出 #1

Jolly

输入 #2

5 1 4 2 -1 6

输出 #2

Not jolly

说明/提示

1≤n≤1000

C++代码

#include <iostream>
#include <cmath>
using namespace std;

int f[200000000];

int main() {
    int n;
    cin >> n;
    int a[n];
    for (int i=0; i<n; ++i)
        cin >> a[i];
    for (int i=1; i<n; ++i)
        f[abs(a[i] - a[i-1])] = 1;
    for (int i=1; i<n; ++i)
        if (f[i] == 0) {
            cout << "Not jolly" << endl;
            return 0;
        }
    cout << "Jolly" << endl;
    return 0;
}
posted @ 2020-08-12 09:50  yuzec  阅读(575)  评论(0编辑  收藏  举报