TonamiLog

ゆるキャン△とスノーボードとオタク

ABC127(4完)

ハロートナミです。
ABC127やりました。悪くないペースで4完しました。
旧ABCだったら全完でしょうか?分かりません

ネタバレがあります。

A

考え

日本語が難しい

書いたソース
A,B = map(int,input().split())

if A < 6:
    print(0)
elif A < 13:
    print(B//2)
else:
    print(B)

普通に条件間違えて1回WAしました。日本語難しいため

B

考え

えーなんか日本語が難しい

書いたソース
r,D,x = map(int,input().split())

for i in range(10):
    x = r*x - D
    print(x)

ンァーですね。

C

考え

日本語を読みながら解答を書いていく
全lrの重複部分の長さを出力しろと言われている気がするためそうしました。

書いたソース
N,M = map(int,input().split())
lr = []
for _ in range(M):
    l, r = map(int,input().split())
    lr.append((l,r))
maxim = 10**6
minumum = 0

for l, r in lr:
    if minumum < l:
        minumum = l
    if r < maxim:
        maxim = r

print(max(maxim-minumum+1,0))

minimumが誤字ってるのリアル感無いですか?

D

考え

aを昇順ソートする
bcを降順ソートする
aを小さい方舐めていってcの方がデカければ書き換える。
b回書き換えたらそのc書き換え権は使えなくなるので次のbcに更新する。

書いたソース
N,M = map(int,input().split())
aList = [int(x) for x in input().split()]
aList.sort()
bc = []
for _ in range(M):
    b, c = map(int,input().split())
    bc.append((b,c))

bc = sorted(bc, key=lambda x:x[1], reverse=True)

idx = 0
result = 0
b = 0
c = 0
for a in aList:
    if b == 0:
        if idx < len(bc):
            b, c = bc[idx]
            idx += 1
        else:
            c = 0
    if a < c:
        result += c-a
        b -= 1
print(result+sum(aList))

なんかこう、もうちょっとマシにやれや感が強いですね。
脳死で書いているので提出はそこそこ早かったんですが……
これはaをcに書き換えた場合の差を計上していって最後にsumに足す、というやり方をしました。
何となくaを実際に書き換えるより早い気がしたのでこうしたんですが、多分aを書き換えた方がいいです。間に合うし

EとF

考え

いやどっちも全然分からん
Eはまず計算の仕方がよく分からなかった。辛いのでFを見る
Fは各ケースでのaの取扱が決めきれず破滅。おわり

結果

f:id:Thiroyuki:20190525225714p:plain
という感じでした。AのWAなんなんだよマジで
5分のペナが入って23分で4完でした。

f:id:Thiroyuki:20190525231610p:plain
これWAなかったら水色行ってたとか無い?ないか
まあ水色リーチと考えて頑張っていきましょう

おわり