#include using namespace std; #define REP(i, n) for(int(i)=0;(i)<(n);++(i)) int main(){ int N; cin >> N; map m; int maxv = 0; REP(i,N){ string s; cin >> s; maxv = max(maxv, ++m[s]); } // 一番多い種類のものが maxv個で、少なくとも(maxv-1)個以上ほかにあれば隣り合わない // ほかの種類のものはそれぞれ必ずmaxv個以下なのですべて隙間に入る // 同じ数であっても ABCABC のように並べられるので、 // 一番多い種類のものに対して残り(N-maxv)個を詰められるか見るだけでよい cout << ( N-maxv >= maxv-1 ? "YES" : "NO") << endl; }