AtCoder Grand Contest 020
はい。
https://atcoder.jp/contests/agc020
A - Move and Win
PyPy3
n,a,b=map(int,input().split()) print("Borys" if (a-b)%2 else "Alice")
Drawになるケースはないはずです。AliceとBorysのマス間が奇数なら、B-Aが偶数ならAliceの勝ち。サンプル1は _2_4
でマス間は1で奇数、4-2で2は偶数でAliceの勝ち。Borysはその反対の時が勝ち。なので差分の偶奇を見れば大丈夫だと思います。
B - Ice Rink Game
PyPy3
k=int(input()) a=[int(i) for i in input().split()] l=2 r=3 for i in range(k-1,-1,-1): l=(l+a[i]-1)//a[i]*a[i] r=(r+a[i]-1)//a[i]*a[i] if l==r: print(-1) else: print(l,r-1)
初期値を最少人数lの2人と最大人数rの3人を用意します。数列を反対から見ていきます。 l=(l+a[i]-1)//a[i]*a[i]
などして値を更新していきます。作成不能になるような場合はl,rが同数になります。最後にl,r-1を出力します。証明はありません。