New Year Contest 2020

New Year Contest 2020に参加しました。
24時間26問で、出題される問題はノンジャンルなんでもありというお祭りみたいなコンテストです。

2687.66点で優勝しました。
AM8時あたりの時点では結構2位に差があったけど、じわじわ追い上げられて結局sugimさんに67点差まで詰められて危なかった。

各問題のコメント

A

ノーコメント

B

大量の「すめけ」の中から「すぬけ」という文字列を探す問題。
目が疲れそうなのでプログラム書いた。
7分くらい?

C

サンプルとかから問題を予想する問題。
よく見たらサンプル、区間の並び順が謎なんよな。
この順なら、区間 i に i の重みをつけて、入れ子になるように取ったときの重みの和の最大値、という解釈が可能なんだけど。

追記:
スリードは要らなくないか?



D

ウミガメのスープ方式で問題を当てる問題。
japljさんお疲れ様です。
FA出たタイミングちょうど寝てた。
最初はどうなることかと思ったけど、writerが大変という一点を除けばちょうどいい難易度だったような気もする。

E

何も情報が書いてないので、どこかから答えを探してくる問題。
解けなかった。
言われてみればたしかに見落としてたなぁ。
悔しい。

F

あともういくつ寝るとお正月かを出力する問題。
これは良かった。
正月の由来、普通に勉強になった。
pythonのdate使うと楽。

G

変わった総当たりリーグ表を構成する問題。
かなりまともな問題。
結構大変だったけど楽しかった。
方針としては、小グループ内の試合をまず全部消化して、あまりチーム同士のをうまい具合に対称的に消化させて、残りを適当に埋めるって感じ。
式を立てるのが結構頭壊れるので、判定とか現在消化できてる試合数とかを出力して眺めながら一歩ずつやると良い。

H

問題文が黒塗りされてる問題。
たしかに透けて見えないかな?とは1mmくらい思ったので、手を動かすべきだった。
解けたかった、悔しい。

I

問題文が段落ごとに文字単位でソートされている問題。
漢字とかを組み合わせたりして、頑張って元の問題文を復元した。
easyというだけあって、まぁそんなに難しくはない。

N要素からなる整数列と、整数Kが与えられる。
整数列からK番目(0-indexed)の要素を取り除き、残ったものの平均値を計算する。
K番目の要素が存在する間この操作を繰り返したとき、平均値として現れる最大のものは何か。
ただし、便宜上空の列の平均値は0とする。

J

ソートされてるやつのhardバージョン。
こっちは文章を完全に復元するのはかなり厳しいので、キーワードを拾っていく。
1段落目:「26角柱」「英大文字」あたりが拾えれば十分。「各側面」「順に書」もあるとなおいい。(金とか年、マジでどう使うんだ...)
2段落目:「文字列A」「文字列B」「等」「操作」「最小」「何回」あたり?
操作1:「Aの末尾のブロック」「取り除」「Bの末尾」「付け加え」「逆」あたりか
操作2:「同様」「先頭」あたりから、操作1の逆だと予想
操作3:良心。「好きなブロックを1つ選び回転させる。すなわち、次の英大文字に変える。Zの次はAになることに注意せよ。」かな?これが1段落目の解釈の助けにもなった。

ぎりぎり解けるぐらいの難易度で楽しかった。
競プロが下手すぎて無限にバグらせて問題文解釈を何度も疑った(つらい)

K

画像から場所を特定する問題。(evimaさんバージョン)
1,2,3は簡単で、10は行ったことがあった。
これ満点取れる人、素直にすごい。

L

22時までに提出した人のうち最後から10番目を狙って提出する問題。
気づいたら22時過ぎてた。

M

数を1つ提出して、参加者の中での中央値を狙う問題。
いや、小さい数に寄るのが分かっててなぜ2^31あたりを選んだのか。(しかも-1と間違えて+1を送ってるし)

N

TODOと書かれている謎の問題。
と思ったら、23:49に問題文が更新された。
配点が-300点なので、間違ってもACしてはいけない。(こわい)

O

画像から場所を特定する問題。(tozanバージョン)
出島は行ったことあるので分かったけど他が無理すぎる。
これ満点取れる人、素直にやばい。

P

画像から問題設定を予想する問題。
左の図とかから「左上から右下までの最短路」だろうとなる。
で、移動方法はチェスの駒の図と矢印から
・ナイトかキングの動きができる
・ナイトの動きをした直後はキングの動きしかできない
と読み取れる。
初期状態は読み取れなかったので提出して試した。(結局初期状態は「どちらでもよい」だった)
あと、入力形式は(エスパー+)input checkerみたいなのを書いてRE/WAで判定していくといいです。

Q

1時間ごとに1文字問題文が読める問題。
提出しないと読めないので張り付く必要がある。
生活を破壊する気満々である。
この問題のおかげで、僕の初夢が汚染されました。訴訟も辞さない。

初夢の内容:
問題文の文字をもらうために2時間おきにアラームをセットして、起きて2回提出してまた寝るを繰り返してた。
これ自体は夢だけじゃなくて現実でもやってたんだけど、夢では17:57にアラームをセットして寝た記憶があったのに、実際に起きたら13:57だった。
どこまでが夢でどこからが現実か、わけがわからなかった。

問題の内容自体は面白かった。
まず、文字と言っているのにも関わらず5桁くらいの数が与えられる。
unicodeっぽいのでここで変換した。
実際の問題文は「この大会のライター3?の名前の中の文字を全て足?」(?は取得し損ねた場所)
で、「どうやって足すの?」というところで文字が数で与えられるっていう伏線を回収するんですねぇ・・・
答えるものも、これなら順番とか表記とかが揺れる余地もなく、うまくできてるなぁ。

R

問題文が再翻訳(?)でめちゃくちゃな日本語になっている問題。
制約がでかいのはヒントになっていて、計算量がやばくなる解釈は棄却できる。
けど「中央値と平均の差の絶対値」というのを信じていたのがダメだったなぁ。隣との差か。
他の部分はだいたい読めてた。

S

和を求めよなんだけど「(標準入力から与えられるとは言っていない)」とか色々書かれている不穏な問題。
まず、数ではなく数字なので数字ごとに足します。
で数字はどこから与えられるかと言うと、テストケース番号です。(0とか1とかを提出してみると察せる)
テストケース番号の取得方法ですが、bashでlsしたり、pythonでos.listdirしたりすると良い。
HackerRankのシステムは結構ガバガバ色々できて楽しいですね。

T

7個数を送って「Σ値/選んだ人数」を最大化する問題。
こういう心理戦的なの難しい。
sigma425氏とsugim48氏の提出が完全一致してて面白かった。
賭博という設定で、参加するためには-3点のコストを払わなければいけないの、ちょっと面白い。

U

問題文の文字が重ねて書いてあるので、頑張って読み解く問題。
問題文のパートはめちゃくちゃ短いので有名問題だろうとなる。
眺めると、SETとかMAXとかが見えるので、MAXMUM INDEPENDENT SET(最大独立集合)かなとなる。
制約を眺めるとたしかに「頂点」とかも見えるし制約も20とかに見えるのでほぼ確信。
そこから入力形式を探ったりするパートで様々な勘違いにより色々と迷走した。

V

C言語のポインタって難しいね、という問題。
見なかったことにした。
この問題を作ろうと思った上で、実際に準備してしまうjaplj氏、すげえでございます。

追記:はえー、コンパイルって意外と速いんですね。

W

とある言語のwikipediaから抜き出した文字をソートしたものが与えられるので、どの言語か当てる問題。
とりあえずWikipedia:全言語版の統計 - Wikipediaから言語一覧をとる。
各言語のトップページを取得して、各テストケースとの類似度を求めて上位100件を出力するスクリプトを書く。
あってるかどうか判定は提出すればできるので、地道に一個ずつ上位から送っていった。
類似度の計算が雑過ぎて、結局33回提出したらしい。

X

画像の破片を並び替えて元の画像を復元する問題。
XmasContest2019 Aのオマージュ。
画像を眺めてみると真っ白で区別のつかない画像が大量に入っている。
画像処理をしてみても違いが検出できなかったので、メタ情報を見てみると位置情報が付いてた。
これすき。

Y

6:45~7:15の間に提出すると答えがもらえる問題。
コンテスト開始からなんだかんだずっと起きてたのでOK。
提出時刻とかの判定はジャッジスクリプトが勝手にやってくれるので、writerは特にやることがない(ずるい)
evimaさんの電話番号を入手して電話かけたかった。(やば)

Z

絵しりとりで何が書かれているかを当てる問題。(しりとりが成立しているとは限らない)
もはや恒例化した問題。
3と8が全くわからなかった。
3: リチウムイオン電池かー(リチウム電池は試した記憶があるため悔しい)
8: いや、まさか「く」から始まってないとは思わへんやん?(前のを「角度」と読んだのかな、なるほど...)
改めて見ると、しりとり大崩壊しとるな・・・

エス

コンテスト中に何かのアチーブメントを達成するとキーワードがもらえて、それを提出すると点数がもらえる。
結局、evimaさんのhoge位まで点数がもらえる系のは全部0点で悲しい。
絵しりとり4つで40点でした。

まとめ?

最初は問題だけ眺めて終わるつもりだったんだけど、思ったよりも面白い問題が多くてついやり込んでしまった。
楽しかった。

> 24時間を溶かしたと思ったけど、うるう年だから実質0時間