AtCoder Regular Contest 147 参加記

2022/9/4に開催されたAtCoder Regular Contest 147に参加しました。

atcoder.jp

土曜のABCでは水パフォを取って、レートの方は大幅に上昇。このARCで、高パフォーマンスが取れれば、一気に入水もあるかという位置に入ってきました。

とはいえ、前回のARCでは1完で冷えという結果でしたので、今回高パフォーマンスが取れるかどうかは微妙なところ。

とりあえず、今回はなんとかレートを上昇できるぐらいの結果が出ればという気持ちで臨むこととしました。

今回の結果

で、肝心の結果ですが、1完で終了という残念な結果に。。。

ARC147結果
ARC147結果

茶パフォを出すという結果になってしまい、レートは暴落。。目標としてた水色コーダーが、遠いものとなってしまいました。。。

振り返り

前回に続き、A問題で時間かけすぎだったかもしれません。

ARC147提出結果
ARC147提出結果

A問題

A - Max Mod Min

とりあえず、配列中で、最小の値と最大の値をとり続ければなんとかなるかという問題。

とはいえ、優先度付きキューを使うと、最大か最小しか取れないので、どうやって実装するかが難しいところ。

とりあえず、最大値の方を管理する優先度付きキューを使うことにし、最小値の方は一度だけ配列をソートしたのち取ってくることとする。

そして、配列の最大値を最小値で割った余りが0以外の場合は、余りの値を次に使う最小値とし、さきほど使った最小値の方は、キューに突っ込むこととする。

で、とりあえずサンプルまでは通ったので、出してみたら、WAがたくさん。。。

何がおかしいかよくわからんかったが、よくよく見ると、最初のソートが抜けていたというオチでした(笑)

ソートのステップを追加して提出すると、無事AC。今回のA問題もだいぶ苦戦してしまいました。

41分15秒2ペナで、やっと1完。

提出コード

https://atcoder.jp/contests/arc147/submissions/34610635

B問題

B - Swap to Sort

一つ跳びで入れ替える操作Bは何回でも使えるので、これは操作Bで転倒数をできるだけ減らしてから、操作Aを行うのがいいんじゃないかと考えてみた。

ということで、まずは、小さい数字から順に、操作Bを優先して揃えていき、どうしても操作Aが必要な場合になったら、そこで操作Aを使うという方針で行ってみることに。

で、出してみたら、これがまたWAだらけという結果。。

大きい順からソートしてみるとか、いろいろこねくり回してみたが、WAは一向に治らずで、ほとんどお手上げ状態。

最後の最後ぐらいに、実はこの問題、値の偶奇と位置の偶奇が結構関係するんじゃ無いか的な事が浮かんでは来たものの、あまりにもアイデアが出てくるのが遅すぎました。

結局、時間いっぱいまでもがいで解けず。

C問題

C - Min Diff Sum

順位表から見ると、ある程度のAC数があったので、ワンチャンあるかと問題文を確認してみましたが、何もわからず。。

D問題

D - Sets Scores

問題すら見ておりません。

E問題

E - Examination

問題すら見ておりません。

F問題

F - Again ABC String

問題すら見ておりません。

これまでの実績

もう少しで水色というところまで来ていましたが、ここで痛いレート暴落。また地道に頑張らねば。。

コンテスト実績
コンテスト実績

総括

今回、水色直前というところで、大きなマイナスを喰らうこととなりましたが、これも自分の実力不足が原因かと。

また、今回の結果を振り返って、次回に向けて精進していきます。

ということで、また次回も頑張ります。