Problem A: Jolly Jumpers
Time Limit: 1 Sec Memory Limit: 64 MB
Submit: 10 Solved: 4
[Submit][Status][Web Board]
Description
A sequence of n > 0 integers is called a jolly jumper if the absolute values of the differences between successive elements take on all possible values 1 through n - 1. For instance, 1 4 2 3 is a jolly jumper, because the absolute differences are 3, 2, and 1, respectively. The definition implies that any sequence of a single integer is a jolly jumper. Write a program to determine whether each of a number of sequences is a jolly jumper.
Input
Each line of input contains an integer n < 3, 000 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
-
Sample Output
Jolly
Not jolly
HINT
水题。
这道题要求输入一串整型数,第一个数为n,后面接着有n个int数,要求后面这n个数两两之间差的绝对值在[1,n-1]范围内,且差的绝对值不能重复。
虽是水题,但还是纠结了一会,原因还是没有读懂题意,忽略了第二个条件。由此可见,英语阅读能力的重要性!
My code:
#include <iostream> using namespace std; int abs(int n)
{
return n>?n:-n;
}
int main()
{
int n;
int ab;
int i;
int a[];
while(cin>>n){
bool b[]={}; //记录绝对值差有无重复
for(i=;i<n;i++){ //输入
cin>>a[i];
}
for(i=;i<n;i++){ //循环判断
int t=abs(a[i]-a[i-]);
if(!(<=t && t<=n-) || b[t] )
break;
else{
b[t]=true;
}
}
if(i==n) //如果正常跳出,说明是个Jolly
cout<<"Jolly"<<endl;
else{
cout<<"Not jolly"<<endl;
}
}
return ;
}
Freecode : www.cnblogs.com/yym2013