#include<bits/stdc++.h>
using namespace std;
int n , a[114514], b[114514];
bool camp(int x,int y){
return x > y;
}
int main(){
int ans = 0,q=0;
cin >> n;
a[0] = 0;
for(int i = 1; i <= n; i++){
cin >> a[i];
b[q++] = abs(a[i]-a[i-1]);
}
sort(b+1,b+n+1);
for(int i = 1; i <= n - 1; i++){
if(i != b[i]){
cout << "Not jolly";
return 0;
}
}
cout << "Jolly";
return 0;
}
我的想法是,在读入数组a的过程中,计算相邻两个差的绝对值
a[0] = 0;
for(int i = 1; i <= n; i++){
cin >> a[i];
b[q++] = abs(a[i]-a[i-1]);
}
这一段,当i = 1时 b[0] = a[1] + a[0] (后面不需要b[0],所以可以忽略)
之后给数组b排序,从小到大,主次和区间1到n得每个数作比较,如果有不同就退出