题目描述
一个n个元素的整数数组,如果数组两个连续元素之间差的绝对值包括了[1,n−1]之间的所有整数,则称之符合“欢乐的跳”,如数组1423符合“欢乐的跳”,因为差的绝对值分别为:3,2,1
给定一个数组,你的任务是判断该数组是否符合“欢乐的跳”。
输入
每组测试数据第一行以一个整数n(1≤n≤1000)开始,接下来n个空格隔开的在[−108,108]之间的整数。
输出
对于每组测试数据,输出一行若该数组符合“欢乐的跳”则输出"Jolly",否则输出"Not jolly"。
样例输入
4 1 4 2 3
样例输出
Jolly
数据规模与约定
时间限制:1 s
内存限制:256 M
100% 的数据保证(1≤n≤1000),整数在[−108,108]范围内
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int num[1005] = { 0 };
int n;
cin >> n;
int t,pre;
for (int i = 1; i <= n; i++) {
cin >> t;
if (i == 1) {
pre = t;
}
else {
int a = (int)fabs(t - pre);
num[a]++;
pre = t;
}
}
for (int i = 1; i <= n-1; i++) {
if (num[i] > 1 || num[i] == 0) {
cout << "Not jolly" << endl;
return 0;
}
}
cout << "Jolly" << endl;
return 0;
}