jj1gujのブログ

アイコン画像は音速の奇行子 様よりいただきました

ABC152参加

ABC152に参加しました.
激冷えしました…
コンテスト成績はこちら
今回遂にFortranで3完しました.

A問題

 N=Mの時にYes、それ以外の時にNoを出力して終わりですね. はい()
提出コードはこちら↓

atcoder.jp

B問題

 min(a,b) max(a,b)回だけ出力して終わりですね. はい()
提出コードはこちら↓

atcoder.jp

C問題

無限に時間を使いました…
最初は隣同士で降順になっているものの数を数えればいいかと思っていたらWAになりました(それはそう).
結局先頭から降順になっているものの数を数えることでACしました.
WAしたコードはこちら↓

atcoder.jp

ACしたコードはこちら↓

atcoder.jp

E問題

問題文から全ての Aについて A _ {i} B_ {i} = A _ {j} B _ {j}となれば良いことから A _ {i} B _ {i} Aの最小公倍数になれば良いことがわかります.
そのため、最小公倍数を求めてから全ての A _ {i}について商を取って足して最後に 10 ^ {9}+7との余りを取れば終わりのはずでした.
計算結果が非常に大きくなることが予想されたためさすがにこの問題はPythonで書きました.
が、

f:id:jj1guj:20200119232811p:plain
はい??
は?
f:id:jj1guj:20200119232903p:plain
制約ギリギリの自作データで試した結果
はああ???
結局これに詰まって時間内にACできませんでした.
悔しい…
f:id:jj1guj:20200119233303p:plain
発狂しまくった後に残った結果
追記
結局最小公倍数を出した後に 10 ^ {9}+7との余りをとり、各 A _ {i}の逆元をかけることでTLEされずにできるようです.
逆元の生成についてはこちらを参考にしました↓

qiita.com

後日ACしたコードはこちらです↓

atcoder.jp


解説読む限りE問題はどうやら最小公倍数を素因数分解した状態で持っておくべきだったようですね.
この前冷えないように頑張ると言ってたのに冷えましたね…
知ってました()
とりあえず3月末までに緑色になれるよう頑張ります.
はああああああああああああ

追記
なんだかんだでFortranで1st ACしてた.
やったね

f:id:jj1guj:20200120104446p:plain
やったぜ!