AtCoder Beginner Contest 046 参加記

はい。 ooxo 1181(+44) http://abc046.contest.atcoder.jp
はい。A,B,Dは割りとスムーズに解いて暫定順位1ページ目だったけどCが通せず残念に。。。

A - AtCoDeerくんとペンキ

Python2

print len(set(map(int,raw_input().split())))

setにして要素の個数がペンキの色の種類になるはず。

B - AtCoDeerくんとボール色塗り

Python2

n,k=map(int,raw_input().split())
ans=chk=1
for i in range(n):
    if i==0:
        ans*=k
    else:
        ans*=(k-1)
print ans

最初は全色k使える次以降は同じ色は使えないのでk-1になる。

C - AtCoDeerくんと選挙速報

WAでした。。

D - AtCoDeerくんと変なじゃんけん

Python2

s=raw_input()
g=p=0
ans=chk=0
for i in s:
    if i=='g' and g>p:
        ans+=1
        p+=1
    elif i=='g':
        g+=1
    if i=='p' and g>p:
        p+=1
    elif i=='p':
        g+=1
        ans-=1
print ans

出してる回数によってパーが使えないことが有る。というか後から気付いたけど自分が出す手はgpgpgp...のグーパー交互固定で問題ないと思う。使えるならパーを出すのが最善であり、パーの回数<=グーの回数の制限内でならグーパー交互固定が最善手になるはず。

Python2

s=raw_input()
ans=0
for a,i in enumerate(s):
  if a%2==0 and i=='p':
    ans-=1
  elif a%2==1 and i=='g':
    ans+=1
print ans

試したらACになった。。