~cpp
// no10038 - Jolly Jumpers
#include <iostream>
using namespace std;
const int MAX = 3000;
bool isJolly(int n);
inline void showJolly(bool w) { w ? cout << "Jolly\n" : cout << "Not jolly\n"; }
inline void eatline() { while(cin.get() != '\n') continue; };
int main()
{
int n; // 뒤에 이어지는 정수들의 개수
while (cin >> n)
{
if (n == 1)
showJolly(true); // n이 1일 경우 Jully 이다. 왜 그럴까?
else
isJolly(n) ? showJolly(true) : showJolly(false);
eatline();
}
return 0;
}
bool isJolly(int n)
{
bool bitJolly[MAX]; // bitJolly[0]은 사용하지 않는다.
int i;
for (i=1; i<n; i++)
bitJolly[i] = 0;
int ftemp, ltemp; // 앞숫자, 뒷숫자
cin >> ftemp;
int gap;
for (i=1; i<n; i++)
{
cin >> ltemp;
gap = abs(ftemp-ltemp);
if (0 < gap && gap < n)
{
bitJolly[gap] = 1;
ftemp = ltemp;
}
else
return false;
}
for (i=1; i<n; i++)
{
if (!bitJolly[i])
return false;
}
return true;
}