)のペアに場合分けをして考えます。)のタイプのペアを見つけたい場合は、各要素について2乗したものが数列の中に存在するかを調べれば良いです。)のタイプのペアを見つける場合は、各要素について素数の2乗でひたすら割って、残った数を2乗し、割った素数と積をとったものが数列の中に存在するかを調べれば良いです。素数で割らなければいけないため、少し工夫をします。して、数列の小さい順にペアを探すことを考えます。前に探すことになります。3乗根を超えることはありません。なってしまうからです。3乗根までの素数の2乗で割ってペアを計算すれば良いです。300弱なので、間に合います。Dコメンタリー:本番は素数列挙せずに解いたため、TLEしてしまった。定数倍と素数列挙分の高速化の意識が足りず、普通に間に合うと思ってしまったが、早くできるところはした方がよさそう。Lovers"で参加していました。全員非学生なので金曜は問題を読む日にして、土日に集まって問題を解いていました。会場を提供してくださったkenkooooさん及び同居人の方に感謝します。Site正方形の折り紙を折った時のシルエット(頂点と辺の情報)が与えられる。どのように折り目がついたかの展開図と、折った時の頂点がもともとどの点と対応しているかを答えよ。(1,0)を4頂点とし、入力は必ず有理数で表現される。折った後の折り紙は回転移動や平行移動を含んでいる場合がある。入力は次の順に与えられる。折り紙を作る多角形の個数。以降の入力が多角形の個数分与えられる。次に頂点が列挙される。中実の場合は時計回り、中空の場合は反時計周りに列挙される。1/2,1/2ビジュアライズしたもの(kenkooooさん作)次の順で出力する。yukicoderがあったので参加した。会場にてチームメイトと合流する。kenkooooさんが問題をクロールして、入力をビジュアライズするスクリプトを書いていたので、ありがたく使わせて頂く。全員がpythonを使う流れに。入力に有理数表現があって、fractionモジュールがあるpythonを使うのは結果的に正解だった。2日目は有効な手法をほとんど実装できずに終わってしまった。roitiさんが何も折らない正方形の解をひたすら無差別に提出していたからか、一時期順位が50位くらいまで上がった時があった。オーバーフローさせるだけの(クソ)問題がいくつか提出されていて、インタラクティブなコンテストの難しさを感じた。(正解者は入力のサイズに比例した点数が獲得できる)公式から折り紙シミュレーションプレイヤーの提供があった。ソースは難読化が施されたjavascriptで書かれていたらしく、それを解読したら難読化されたアルゴリズムが記述されていた。凸包解はコンセプトは簡単に思いついたが、実装が難航し、この日は手動提出+正方形爆撃で終了。2016年8月7日とにかくプログラムを書いて簡単な非自明な問題に正解することを目標とした。夕方ごろまで実装が何も進まず、鶴を折れなかったり、わいんさんが筋肉で非自明な問題を提出をしているのを観察していた。頂点の対称移動の方針で考えていたが、面の対称移動をする方法を思いつき、夕方頃から1回折る問題に解答できるソルバーの実装を始める。わいんさんがあらかじめ実装していた対称移動ライブラリをお借りしたが、実装が終了する前にわいんさんの帰る時間となり見送ることに。2016年8月7日すまん、どうしても寿司が食べたかったんだ...食後に折り目によって分割された面を木で管理する方法を思いつく。帰宅後は自分のソルバーの続きを実装。夜中に1回折る問題を半自動(折り目のみ指定)で数問通した。この程度だったら2日目に実装できたレベルだが、疲れたので次のステップに進むことはできなかった。kenkooooさんから面を木で管理する方法でかなりうまくいったらしいが、無限のバグで死亡したという報告を受け、寝る。最終順位は約300チーム中80位前後でした。自分の貢献度が低すぎてチームメイトに申し訳なかったのですが、ワイワイできて楽しかったです。3日目に思いついたアイデアを2日目に思いついていたらもうちょっと生産的になったかも、という後悔もありました。インフラの重要性も感じ、前半でインフラをどれだけ充実できるかも勝負を有利に進めるポイントとなった気がします。いうのも、提出の結果は手動提出時のリザルトページかAPIレスポンス経由でしか取得できず、チーム参加の場合は提出環境を統一して、問題リストを一括管理する必要を感じました。公式のジャッジシステムやシミュレーションツールがとても出来が良く、公式ツールレベルの実装に達しただけでも相当上位に食い込めそうな印象でした。チームUnagiが潜伏しながら首位争いをしていて、格の違いを感じました。ネタが折り紙だからか、日本人のチームが上位に多かったようです。普段のコンテストと違い、こういった長時間のコンテストも楽しかったので、来年も参加したいと思います。チームのソースコード及び自分のスパゲッティソルバーはこちら。JAGkenkooooさん、roitiさんとチームshinsotsuで参加。会場を提供してくださったroitiさんに感謝いたします。結果:CとEを担当して総合15位。Eはroitiさんの考えた解法を自分が実装した形になり、チーム戦っぽいことができてよかったです。幾何は基本的なライブラリがある程度ないとVerifyだけで時間を取られてしまうので、今回ACできたコードはライブラリに入れようと思います。ノードを作って二分木のデータ構造を構築してしまう方法もあるが、DFSをやりながら対応する頂点をマージし、stringを再構築する方法を思いつき、楽そうということもあって途中で方針転換した。Cコメント:サンプルが仰々しいせいか、考えを整理するのに時間がかかってしまった。