---
# System prepended metadata

title: Jolly Jumpers
tags: [UVA]

---

# Jolly Jumpers
題目連結 [UVA 10038](https://onlinejudge.org/external/100/10038.pdf)


## 中文簡述
對於一個所有項目皆大於0的數列，如果兩兩的差介於1到n-1間，且沒有重複的話，
輸出 `Jolly` 否則輸出`Not jolly`

## [think]
1. 先輸入數字，並且判斷是否大於零，不是的話，`check=0`
2. 判斷相減的絕對值是否為0或是大於n，如果相減絕對值為0或大於n的話，`check=0`，否則用`num`陣列記錄相差數的紀錄。
3. 判斷`num`裡的數值是否都等於1，如果有一個不等於1，`check=0`，其他`check=1`
4. 如果`check=1`，輸出`jelly`，其他輸出`Not jelly`

## solution:
```
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	while(cin>>n)
	{
		int check=1,num[n]={0},arr[n],i;
		for(i=0;i<n;i++)
		{
			cin>>arr[i];
			check=arr[i]==0?0:1;
		}
		
		for(i=0;i<n-1 and check;i++)
		{
			int res=abs(arr[i]-arr[i+1]);
			check=(res==0 or res>=n)?0:1;
			num[res]++;	
		}
		
		for(i=1;i<n and check;i++)
		{
			check=num[i]==1?1:0;	
		}
		
		if(check)
		{
			cout<<"Jolly."<<endl;
		}
		else
		{
			cout<<"Not jolly."<<endl;
		}

	}
}

```
###### tags: `UVA` 
回目錄 [學習筆記](/gIBZqAbWTCis7uOPp149gA)

