Problem E: Jolly Jumpers
1 4 2 3is a jolly jumper, because the absolutes differences are 3, 2, and 1 respectively. The definition implies that any sequence of a single integer is a jolly jumper. You are to write a program to determine whether or not each of a number of sequences is a jolly jumper.
Input
Each line of input contains an integer n <= 3000 followed by n integers representing the sequence.
Output
For each line of input, generate a line of output saying "Jolly" or "Not jolly".Sample Input
4 1 4 2 3 5 1 4 2 -1 6
Sample Output
JollyNot jolly
思路:简单的模拟一下即可;数组a存放原始数据,数组b存放数组a相邻的元素的差值的绝对值,将b的值排一下序,看一下是不是 所有的b[i]=i+1;入伙所有的都符合输出Jolly else 输出Not Jolly
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> int a[3005],b[3005]; using namespace std; int main(){ int n,i,flag; while(cin>>n){ for(i=0;i<n;i++){ cin>>a[i]; } for(i=0;i<n-1;i++){ b[i]=abs(a[i]-a[i+1]); } sort(b,b+n-1); flag=0; for(i=1;i<n;i++){ if(b[i-1]!=i){ flag=1; break; } } if(!flag) cout<<"Jolly"<<endl; else cout<<"Not jolly"<<endl; } return 0; }