題目連結: https://zerojudge.tw/ShowProblem?problemid=d097

# 解題思路

就開一個長度為 n 的陣列,記錄前後差的數值是否出現過
再從 1~n 之間,開始搜索哪一個未出現過,只要有找到就不是 Jolly Jumpers

# 程式碼

#include <iostream>
using namespace std;
int main() {
    int n,x;
    while(cin>>n){
        int num[n],d[n]={0};
        bool ans=true;
        for(int i=0;i<n;i++)
            cin>>num[i];
        for(int i =0;i<n-1;i++){
            x=num[i]-num[i+1];
            if(x<0)   // 轉絕對值 (紀錄的都是正數)
                d[-x]=1;
            else
                d[x]=1;
        }
        for(int i=1;i<n-1;i++){
            if(d[i]==0){
                ans=false;
                break;
            }
        }
        if(ans)
            cout<<"Jolly"<<endl;
        else
            cout<<"Not jolly"<<endl;
    }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay