AtCoder Beginner Contest 131
はい。
https://atcoder.jp/contests/abc131
oooo-x 980(+25)でした。無駄にWAしてます。コピペミスです。
A - Security
PyPy3
s=input() print("Bad" if s[0]==s[1] or s[1]==s[2] or s[2]==s[3] else "Good")
1-2、2-3、3-4文字目が同じである場合を判定しました。。
B - Bite Eating
PyPy3
n,l=map(int,input().split()) ans=0 chk=10000 for i in range(n): ans+=i+l if abs(chk)>abs(i+l): chk=i+l print(ans-chk)
コンテスト中は問題文の意味が分かってませんでした。分かってませんでしたがリンゴの総和から絶対値が最も0に近いものを除いていたので問題ありませんでした。
C - Anti-Division
PyPy3
import fractions def lcm(a,b): return a*b//fractions.gcd(a,b) a,b,c,d=map(int,input().split()) a-=1 ans=b t=lcm(c,d) ans-=b//c-a//c ans-=b//d-a//d ans+=b//t-a//t print(ans-a)
aは事前に-1しておきます。 b//c-a//c
でa以上b以下の範囲のcで割り切れる数の個数を全体から引きます。同様にdで割り切れるものも計算して引きます。cで割りきれてdでも割り切れるものが2度引かれていることになるのでcとdの最小公倍数で割り切れるものを足します。
a以上b以下の範囲なのでaを引きます。解になります。多分。。
D - Megalomania
PyPy3
n=int(input()) d=[] for i in range(n): a,b=map(int,input().split()) d.append((b,a)) d.sort() chk=0 for i in d: chk+=i[1] if chk>i[0]: print("No") exit() print("Yes")
締め切り時刻でソートして先頭から実施時間の加算をして締め切り時刻を超えるかどうか調べました。それが正しいかは証明はありませんでした。ですが同じ締め切り時刻では優先順位付ける必要ないとか、実施時間が軽くても重くても締め切り時刻の遅いものを優先する必要なさそうだなで証明はありませんが提出しました。