kmjp's blog

競技プログラミング参加記です

AtCoder ARC #014 : Python練習編

ARC#014もPythonで。
でもDは実行速度が間に合わなさそうなのでCまで。
http://arc014.contest.atcoder.jp/assignments

C++の時の記事。
http://kmjp.hatenablog.jp/entry/2013/06/17/0900
http://kmjp.hatenablog.jp/entry/2013/06/17/0930

A - 君が望むなら世界中全てのたこ焼きを赤と青に染め上げよう

入力値の偶奇で出力を変える。配列とか使えば1行で書けそうではあるが、一応律儀に書いてみた。

import sys

if input()%2==1:
	print("Red");
else:
	print("Blue");

B - あの日したしりとりの結果を僕達はまだ知らない。

過去に登場した単語を覚えるためにsetを使う。
うーん、追加メソッドがpushだかinsertだかaddだかすぐ思い出せないし、キーがないエントリをgetメソッド使わず読んでエラー起こすし、setの使い方は覚えられてないな。

import sys

N=input()
W=[]
for i in range(N):
	W.append(raw_input().strip())

S=set([W[0]])

for i in range(1,N):
	if (W[i] in S) or (W[i][0]!=W[i-1][-1]):
		if i%2==0:
			print("LOSE")
		else:
			print("WIN")
		exit()
	S.add(W[i])

print("DRAW")

C - 魂の還る場所

簡単な方の回答で書いたらBより短くなった。

import sys

N=input()
W=raw_input().strip()
A={}

for i in range(N):
	A[W[i]]=A.get(W[i],0)+1

print(A.get('R',0)%2 + A.get('G',0)%2 + A.get('B',0)%2)

まとめ

やはり触ってない言語はすぐ忘れる。
もうちょい触るようにしないとな。