tk555 diary

プログラミング、もしくはそれ以外のこと書きます。

ABC111-C

問題

atcoder.jp

回答

atcoder.jp

 

 紙

なし

思考

  1. int[100001]で出現回数をとって最大のものに変更すればよさそう
  2. テストケース3がWA
  3. 2番目の条件「数列に現れる数はちょうど2種類」がめんどい
  4. 偶数インデックスと奇数インデックスの時の(出現回数,インデックス)のpairをそれぞれListでもって(偶リスト,奇リスト)それぞれ(0,0)を追加して出現回数で降順ソート
  5. それぞれのリストの出現回数が多いもの(list.get(0))のインデックスが違うならそれに変更すればいい
  6. 違うなら偶奇リストのどっちかをget(1)のほうに変える

なんか訳わからんけど2番目の条件のせいで解法自体ごっちゃごちゃになってる。

詳しくはソースコード

他人の提出見てもかなりWAが多いからこの問題むずいんじゃなかろうか。

 

他人の回答

皆if文内でネストされたifとかやってて苦労してんなぁと(人のことは言えないが)。

やっぱソートが簡単か。

あとmaxやminをstatic importで入れてる人が案外いないことに気づいた。 

なんか問題があるんだろうか。