0.はじめに
コンテストの予選のせいか、難しめだった気がします。
A~Cは解けましたが、Dはちょっと見ただけで無理そうな
雰囲気を感じてしまいリタイヤ。
まぁレートが751→735と下がったので、予選のため難しかったとかは
いいわけなのですが・・・。
1.A - New Scheme
条件複数あるけどそれほどややこしくないので
リストを頭から読んでいき、条件を満たしているかを判定。
if(i>0):
if(S[i-1]>S[i]):
print("No")
exit()
elif(S[i]<100 or S[i]>675):
print("No")
exit()
elif(S[i]%25!=0):
print("No")
exit()
print("Yes")
最初、↑のように書いたら昇順チェックしかしないという
単純なバグを発生させてしまい、5行目をifと別条件式にして
ACを頂きました。
https://atcoder.jp/contests/abc308/submissions/43096262
2.B - Default Price
3種のリストに文字列を扱うというBにしては珍しい問題。
DとCの組み合わせを辞書登録して
Cのリストを頭から読んでいき
辞書になかったらP[0]の値、あったら辞書の値を回答用変数に加算
最後に回答用変数を出力して終了。
https://atcoder.jp/contests/abc308/submissions/43102496
3.C - Standings
最初の実装は10分強でできまいたが、WAが4つ発生
Pythonは小数の比較が正確でない時がある(意訳)ような説明を
どっかで見た気がしたので、そこをどうにかしようと試行錯誤・・・。
5~6回いろいろあがいて、最後には
おそらく、小数点の小さい方がごにょごにょとなってしまうんだろうなと思い(感覚派)
成功率の計算をA/(A+B)から、(A*10**20)//(A+B)と、強引に整数の域まで持ってきて
計算することで、ACにたどり着きました。
https://atcoder.jp/contests/abc308/submissions/43137050
以上