Yaroslav has an array that consists of *n* integers. In one second Yaroslav can swap two neighboring array elements. Now Yaroslav is wondering if he can obtain an array where any two neighboring elements would be distinct in a finite time.

Help Yaroslav.
The first line contains integer *n* (1 ≤ *n* ≤ 100) — the number of elements in the array. The second line contains *n* integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 1000) — the array elements.
#include <iostream>
#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n,t;
    set<int> s;
    cin>>n;
    int arr[1009]={0};
    for (int i=0;i<n;i++){
        cin>>t;
        s.insert(t);
        arr[t]++;
    }
    int x=(n+1)/2;
    bool z= true;
    for(int i=0;i<1009;i++){
        if(x<arr[i] && arr[i]!=0) {
            z=false; break;
        }
    }
    if (z)
        cout<<"YES";
    else cout<<"NO";

    return 0;
}
