読者です 読者をやめる 読者になる 読者になる

水面下の夢

競プロやイラストに興味があります.メインブログがここ.ソシャゲの話はこっち(http://ameblo.jp/0n0-yumechi/).ブログアイコンはYaQ(@8_9_00)さんから.

ABC049に参加しました

AtCoderABC Python Ruby 競技プログラミング

3完。21位。次からはARC出たほうが良さそうだなあ。

abc049.contest.atcoder.jp



A問題

A: 居合を終え、青い絵を覆う / UOIAUAI - AtCoder Beginner Contest 049 | AtCoder

"aiueo"のどれかが入っているかどうかで判定して出力する。うまいやり方がありそうな気がする。

結局短く書ける方法あったからそっちを掲載しておく。

Submission #1023028 - AtCoder Beginner Contest 049 | AtCoder

print("vowel" if input() in list("aiueo") else "consonant")

B問題

B: たてなが / Thin - AtCoder Beginner Contest 049 | AtCoder

読み込んだ行を2回ずつ出力する。

Submission #1017681 - AtCoder Beginner Contest 049 | AtCoder

def solve():
    h, w = map(int, input().split())
    for _ in range(h):
        s = input()
        print(s)
        print(s)
 
 
if __name__=="__main__":
    solve()

C問題

C: 白昼夢 / Daydream - AtCoder Beginner Contest 049 | AtCoder

T の末尾に dream dreamer erase eraser のいずれかを追加する。

これらだけでなる文字列かどうかを判定すれば良い。
正攻法では、後ろから見ていき、該当するものがあれば削除するという方針が取れる。
が、実はコレ正規表現をかける順番さえ間違えなければ手抜いてACできる。当然私は手抜きました。

こいつだけRuby。書き直したらワンライナーなんだよなあ。。。

Submission #1020681 - AtCoder Beginner Contest 049 | AtCoder

puts gets.chomp.gsub(/eraser/, "").gsub(/erase/, "").gsub(/dreamer/, "").gsub(/dream/, "").length>0 ? "NO" : "YES"

D問題

D: 連結 / Connectivity - AtCoder Beginner Contest 049 | AtCoder

道路でつながっているものと、線路でつながっているものの群をそれぞれ出してあげれば回答できるはず。
深さ優先探索で頑張ったけどTLEでした。おとなしくUnion-Find浸かっておけばよかったですね。ABCの枠ではPythonでのACがいませんでした。(ARCの方ではいたので、じっくりとコードを読ませていただいた)



4完できるセットだと思ったので、結構悔しかったです。次は4完と言いたいですが、ARCに出たほうが良さそうなので、レーティング爆下げとかにならない限りはABCでて4完とかないかな。。。