読者です 読者をやめる 読者になる 読者になる

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Round #179 (Div.2)

はい。
http://codeforces.com/contest/296

A. Yaroslav and Permutations

ざっくりと大意

・数列のドコにも隣同士で同じ数がないようするらしい

方針のようなもの

・最も多い要素が (全体の要素数/2)+1 以下なら大丈夫かな

n=int(raw_input())
a={}
chk=1
l=[int(x) for x in raw_input().split()]
s=list(set(l))
for i in s:
    chk=max(chk,l.count(i))
if n%2:
    print 'YES' if ((n+1)/2)>=chk else 'NO'
else:
    print 'YES' if (n/2)>=chk else 'NO'

+1していいのは要素数が奇数個の時だった。連想配列使って数えようとしたけど全然そんな必要なくてsetにしてからcountのが楽だった。