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

AtCoder Regular Contest 028

atcoder

はい。 ox--
A問題は難しくなかったけどBでバグが取れなくて諦めて、CDは何もせずでした。

A - 小石を取るゲーム

石の減り方をシミュしたけど余りを見れば即判定できたらしい

#シミュしたパターン
n,a,b=map(int,raw_input().split())
while 1:
    n-=a
    if n<=0:
        print 'Ant'
        exit()
    n-=b
    if n<=0:
        print 'Bug'
        exit()

#余りを見るパターン
#nを(a+b)の余りで見ると、丁度割り切れているor余りがaより大きいとBugの手番で0になる
n,a,b=map(int,raw_input().split())
i=n%(a+b)
print'Bug' if i==0 or i>a else'Ant'

B - 特別賞

j位までk番目の人を見ていきつつk+1番目の人はどんどん捨てていくらしい。。
確かに番目が繰り上がることはあり得ないが中々気づけることではないような。。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#Hachimori さんをパクって書き換えた
import heapq

n,k=map(int,raw_input().split())
l=[int(x) for x in raw_input().split()]
q=[]
for i in xrange(k):
    heapq.heappush(q,(-l[i],i))
for i in xrange(k,len(l)):
    cur=q[0]
    print cur[1]+1
    heapq.heappush(q,(-l[i],i))
    heapq.heappop(q)
print q[0][1]+1

heapqは後で要学習
http://docs.python.jp/2/library/heapq.html