okimochi(idsigma, risujiroh, kort0n)で韓国に行ってきました
出発前夜
明日出発なのにまだチームライブラリ白紙です
— こるとん (@kyort0n) 2019年11月6日
荷造り進捗0だし
— こるとん (@kyort0n) 2019年11月6日
チームライブラリのレイアウトが決まる(出発前夜23:17)
— こるとん (@kyort0n) 2019年11月6日
ライブラリ完成(出国9時間半前) pic.twitter.com/3NSZz7pBMh
— こるとん (@kyort0n) 2019年11月6日
荷造り完了(出国9時間前)
— こるとん (@kyort0n) 2019年11月6日
3時間だけ寝る
— こるとん (@kyort0n) 2019年11月6日
準備は...ちゃんとしよう...!
公式サイトどれだけ探しても持ち込み資料についてのルールが見つからなかったので、去年Seoul Regonal Contestに参加したbeetに色々聞いて準備しました ありがとうbeet
Day.1
韓国着いた! pic.twitter.com/uWmO2zz04C
— こるとん (@kyort0n) 2019年11月7日
ハングル1文字も読めなくてビビる ただの記号にしか見えない
空港は大体看板に日本語も書いてあるのでイージーだったが、電車等では基本的に駅名が韓国語でしか表示されないのでかなり大変だった
何やかんやでホテルに着く 往復航空券+3泊4日ホテルが3人合計で100k 安すぎておったまげた
安宿だからかホテルWi-Fiがあまりに貧弱 まぁ通信容量無制限の海外用ポケットWi-Fi契約してきたしこれを使おう...
...と思うが、何故かポケットWi-Fiがここで不調に かなり険しい気持ちになる
貧弱Wi-Fiに繋げてなんとかクレームを付ける とりあえず空腹なので外で店を探す インターネットも無しに異国の地を歩くの不安すぎた
Day.2
寝て起きたら昨日投げたクレームに対応してくれて、ポケットWi-Fiが繋がるようになっていた ありがてぇ...
そして外出する準備をしていると
practice当日の10:58に、ライブラリやキーボードの持ち込みについての指示が出ましたが.............. pic.twitter.com/u32V97XIsm
— こるとん (@kyort0n) 2019年11月8日
なんで?
まあ結果的にライブラリの要求仕様は去年と同じだったので問題無かった ありがとうbeet
practiceが昼からだったので、それまで近くのショッピングモールを適当に散策する
— こるとん (@kyort0n) 2019年11月8日
これすき
韓国のネカフェ座席数がやべえ pic.twitter.com/9buzSiEzrw
— こるとん (@kyort0n) 2019年11月8日
これすごい
— こるとん (@kyort0n) 2019年11月8日
これおいしい 日本にも出店して
良い時間になったのでpracticeに向かう
— こるとん (@kyort0n) 2019年11月8日
横浜が基本英語進行だと聞いていたのでソウルも英語進行だと思っていたが、入場案内が韓国語でかなり焦る やばい
何だかんだでその辺のスタッフが英語通じたので何とかなった
注意事項説明は英語と韓国語両方だった 助かった
We will begin the contest on time.(強い意志)
— こるとん (@kyort0n) 2019年11月8日
DO NOT TOUCH ANYTHING
— こるとん (@kyort0n) 2019年11月8日
「コンテストルームに入ったら、指示があるまでは"DO NOT TOUCH ANYTHING." 失格になります。 "DO NOT TOUCH ANYTHING."」と一生言われてた 多分"DO NOT TOUCH ANYTHING"カウンター30くらい
コンテストルームに移り、practiceが始まる
問題は2018 Seoul Regonal Contestから3問
Practice Aは去年のD
Practice Bは去年のE
Practice Cは去年のL
去年のE...?
(解いたことが無い人はこの先を読む前に是非解いてみてほしい
Dashboard - 2018-2019 ACM-ICPC, Asia Seoul Regional Contest - Codeforces
多分考察は新ABC-E程度で、実装は新ABC-E強〜新ABC-F弱程度だと思います)
以下Seoul Regional Contest 2018の重大なネタバレ有り
何なのかと言うと、こういうことです
practiceに去年のE(邪悪コーナーケース問題)入ってるwwwwwwwwwwwwwww
— こるとん (@kyort0n) 2019年11月8日
https://twitter.com/kyort0n/status/1188019884766023681?s=20
https://twitter.com/kyort0n/status/1188019884766023681?s=20
2018-2019 ACM-ICPC, Asia Seoul Regional Contest
— こるとん (@kyort0n) October 26, 2019
9完最遅で(オンサイト参加チームのみで)10位
Eで入出力TLEにハマった上コーナーケースを見つけられず11ペナ出した... pic.twitter.com/mpkE4IYYRp

Eのペナルティを見るとヤバさが分かると思います
去年のセットはチーム練しており、そのときはAはidsigmaが通しており、BとCは僕が通していた
まあpracticeでは流石に1人1問実装した方が良いということになり、BとCの一方をrisujirohに譲ることにする
risujiroh「どっちやればいい?」
ぼく「Bやって(即答)」
idsigmaがAを通したので、Cをやる エディタをいつも通りの感じにするのが思ったより大変ということが分かってビビる 結局色々妥協するもかなりやりづらくて、初めて実装したときより時間が掛かる
riujirohがBを実装して提出すると、WRONG ANSWER
ぼく「よし!!!!!!!!!!!!!!!!!!!!!」
チームメイトがWAを出した瞬間にガッツポーズする人間→@kyort0n
— 自朗 (@risujiroh) 2019年11月8日
自分がコーナーケースで散々苦しんだ問題で目の前のチームメイトが死んだらガッツポーズするだろ
— こるとん (@kyort0n) 2019年11月8日
時間がないのでコーナーケースを教える ブチ切れてた
何だかんだで皆慣れないエディタに苦戦する等の要因で時間ギリギリに 余った僅かな時間で何となくCLionを弄ると、その使いやすさに感動...
CLionの使い勝手の良さに感動した弊チーム、ホテルに戻ってCLion練習会を開くことを決意
— こるとん (@kyort0n) 2019年11月8日
CLion最高!!!!一番好きなIDEです!!!!
— こるとん (@kyort0n) 2019年11月8日
ホテルに戻るとこのリプライが届いている
@kyort0n はじめまして!今日の練習試合お疲れ様でした。ソウル地域大会って外国の参加者にあまり親切ではないですよね😅もし明日の大会についてわからないことがあったら気軽に聞いてください😊
— 南南西🍤 (@Namnamseo_jpn) 2019年11月8日
韓国、あったけぇ...
調べたら789の方だったらしい 本当に有難うございました
韓国、サイコ〜〜〜 pic.twitter.com/XuniwqdOUh
— こるとん (@kyort0n) 2019年11月8日
CLionの最低限の使い方を覚える 「明日構文解析出たらよろしく」と押し付け合いながら就寝(弊チームは構文解析担当がちゃんと決まっていなくて、いつもは大体手の空いた人がやってます)
Day.3
朝が早い
集まると改めて諸々の説明をされる この日の"DO NOT TOUCH ANYTHING"カウンター20くらい
コンテストルームに移る 周りのチームが普通にマウス触ってPCのスリープモード解除しててウケる 前3チームくらい連続して普通にPCのスリープモード解除されてる 治安が悪すぎるだろ
まあスリープモード解除されるくらいは事故でもありそうだし仕方ないかなと思うが、いくつかのチームが開始1分前時点でスリープモード解除した上にログイン画面まで進めていた それはシンプルに不正じゃないか?
コンテスト
idsigmaがABCDEFを読み、risujirohがGHIJKLを読み、ぼくが最初にエディタの設定をすることになっていたので、する
エディタの設定を終えると、「EFGHを読め」と言われたので、読む
E:なんか出来そうな見た目 なんかうまい貪欲とかありそうじゃない?←なさそう まあ後回し
F:あーなんか今年の幾何問題不可能そうだな... とりあえずrisujirohに後で読んでと言って放置
G:なんだこれ むずそう
H:出来なくはなさそうだけど、多分解けても実装重いだろうな 後回しでいい
idsigmaにIが簡単そうだと言われる 読むと確かに簡単で、実装を始める
なんかこの頃にはもうAが通ってたらしい いつ通ったんだ?
無事実装を終えるも、サンプルが合わない 何故か「隣接する2点の距離をans以下にする」ではなくて、「隣接する2点をans以上離す」で実装してしまっていた は?
一旦PCをrisujirohに譲ったらJが通ってた その後Iを通す
その直後、idsigmaにLの解法を伝えられる これはバグらせずにサッと実装して通す
「B得意そうだからやって」と言われ、問題概要を伝えられる
考えると、うまいこと部分木の情報を1つの値で表して木dp出来ることが分かる
しかし、risujirohが「これ最大ケースだとlong longでオーバーフローしないか?」と言い始める 確かに...
「とりあえずlong longで提出して、落ちたらint128で書き直して再提出しよう」と言って、実装を始める int128の出力を書くのが面倒だったので説得出来て良かった
しかし、ここで伝達ミスで、「全ての葉のペア」ではなく「全ての頂点のペア」だと思って解いてしまっていたことに気付く 大まかな解法が壊れる訳ではないが、遷移式が書き直しになる 伝達ミスは最近のチーム練でも何度もやらかしてたので気をつけてないといけないと思っていたのに油断してしまった...
更に最悪なことに、元のコードを少し弄ったらスパゲッティになって酷いことになる コードを印刷して、Hが解けたと主張するrisujirohにPCを譲る
暫くしてバグを発見して直すとサンプルが合う 提出するとAC これに1時間くらい掛かったの本当に酷かった...
ところで
そういえばソウル B、オーバーフローするケース見つけたけど
— 免許更新をする (@rian_tkb) 2019年11月9日
ちなみに -4734320840174338048 になりました
— 免許更新をする (@rian_tkb) 2019年11月9日
これがICPC
順位表を見るとKがそこそこ通っているので読む
未証明だけど、ある平面を固定したときにそれらを跨るような点の取り方をするのは損だなぁ(雑)という気持ちになる 平面の取り方を全探索すると、これでO(N^4)となる
この先は幾何っぽい考察が必要だねという気持ちになる risujirohがHを通したので、これの続きを投げて、自分はGに移る というか、このセット実質幾何が2問か...
何かこの辺で順位表が凍結する 2年くらい前の韓国大会でも1位チームが残り1問になった時点で凍結されたと聞いたので今年もあるかなと思っていたが、実際1位のCafe Mountainが残り2問になった時点で凍結された 自由すぎるだろーと思っていたけど、そういえばルールで順位表凍結時刻は指定されてないんですよね...
Gを考える 色々考えると、左から順番にdpをすれば良いということが分かる これ遷移式が、「2つの異なる区間の中の最小値のうちのmin + 1」みたいになるんですよね こんな遷移式初めて見た...
とりあえず区間minを愚直に求める方法で甘えて残りを実装すると、無事サンプルが合う あとはセグ木を写経して区間minを高速に求められるようにするだけ 勝ったな!
ウッキウキでセグ木を写経してサンプルを試す バグる 人は何故...
写経をミスっていました 提出するとAC
risujirohが「Kの平面全探索は軸を1つfixして、もう1つ通る点を偏角ソートで順番に見ると高速に更新出来るから間に合う」と言い始める なんだそれ やべー
risujirohがKの実装を始める 残りの問題のうち手が出せそうなのはCとEあたり Fはrisujirohが多分無理と言ったので諦める Dはなんも出来る気がしない(これも結局伝達ミスで問題を勘違いしていたんですが...)
眺めていると、Eが解けた気分になる Kと並列で実装を始める(お互い詰まったら印刷して交代)
Kのサンプルが合ったらしいので提出するが、WA というかKのサンプル貧弱すぎるだろ
その後Kを何度か提出していたが、全然通らなくて辛そう
Eの実装が終わる サンプルを試すsample2~sample4はok sample1の3番目の答えだけ合わない
まあこれは後は少し境界条件が間違っているだけだろうという気分になる
暫くしてKが通る なんか尺取りでバグっていたらしい?
KをやっていたrisujirohにEの現状を伝える すると、
「サンプル1で3番目の答えって2で合ってるんじゃないの?これとこれとこれを取り除いたら連結成分数2つになると思うけど」
と言われる 確かに?????これ出力例間違ってないか?????
出力例のミスを信じてsubmitすると、一瞬でWAが返ってくる そういえば3番目の答えは頂点を2つ取り除いたときの答えでしたね......
残り10分くらいになっていよいよ大幅な書き直しをする時間は無くなってきたので、ドキドキソート評価関数ガチャを始める(こういうのあまり好きじゃないんですが、流石に時間が無かったので...)
結局通らずに終了 以上8完1043ペナでした 凍結時点では1位10完投Cafe Mountain 2位9完789で3位以下は7完以下だった為見た目の順位は良いが、まあ凍結から2時間経ってるのでよそのチームも沢山通しているでしょう...
反省点
Bがすぐ通せないの最低 伝達ミスを考慮しても遅すぎる
長いこと順位表が凍結されていたので周りの情報は分かっていなかったのだが、終わってみればEはオンサイト1ACの地雷問だった これ手を付けるべきではなかったのかもしれない...(オンラインミラーはそこそこ通ってた) まあ僕の解法はO(N^2logN)だったんですが、どうやらこの問題はO(N^2logN)はTLがかなり厳しかったらしい?じゃあ実装出来てても厳しかったんだろうか そもそも自分のが本当に合っていたかは分からないんですが
HとKで「試す順番を工夫すれば更新が高速に行えるので計算量を落とせる」に気付かなくて解ききれなかった これ苦手分野なのかもしれない...
コンテスト後
日本勢いつものperiscopeをする しかし進行が韓国語...
結果は11位でした
okimochi、ソウル11位でした!お疲れ様でした! pic.twitter.com/9R3dkBTpig
— こるとん (@kyort0n) 2019年11月9日
10位以内に入ることも出来なかった 良い順位ではないんですが、でもこれは冷えではなくて多分実力相応くらいなんですよね...
話を聞いてなくて壇上に呼ばれることに気付いていなくて、慌てて壇上に向かう 慌てていたのでiPadを閉じてしまい配信が途切れる 配信聞いてた人すまんな いや11位で表彰されるとは思わなくない?
1位のCafe Mountainが全完だった えぇ...
— こるとん (@kyort0n) 2019年11月9日
こるとん㊙️情報
— こるとん (@kyort0n) 2019年11月9日
辛いものが苦手
誰か助けてくれ
— こるとん (@kyort0n) 2019年11月9日
この夜は何も無かった いいね?
Day.4
最終日にギリギリ少し観光した pic.twitter.com/Ji9rF1I4en
— こるとん (@kyort0n) 2019年11月10日
@potetisensei 石焼きビビンバ pic.twitter.com/gqlkel9csB
— こるとん (@kyort0n) 2019年11月10日
ただいま! pic.twitter.com/0ZlAFHHJ5g
— こるとん (@kyort0n) 2019年11月10日
次は来週の横浜ですね 横浜でお会いする皆さん、宜しくお願いします