ABC184

3完です。C問題が難しかったみたい。

A - Determinant

行列式は頭が痛い

Code

a, b = MI()
c, d = MI()
 
print(a*d - b*c)

B - Quizzes

Code

N, X = MI()
S = S()
 
for i in S:
    if X > 0:
        if i == "x":
            X -= 1
        else:
            X += 1
 
    else:
        if i == "o":
            X += 1
 
print(X)

C - Super Ryuma

えー。after contest というテストケースが追加され、再度提出したら見事にWAだったのでショック。。。

学び

$$ |a - c| + |b - d| \le 3 $$ こういうのマンハッタン距離という

嘘解法 Code

r1, c1 = MI()
r2, c2 = MI()
ans = 0
mk = abs(r1 - r2) + abs(c1 - c2)
 
 
if r1 == r2 and c1 == c2:
    ans = 0
elif mk <= 3:
    ans = 1
else:
    if mk % 2 == 0:
        if r1 + c1 == r2 + c2 or r1 - c1 == r2 - c2:
            ans = 1
        else:
            ans = 2
    else:
        for i in range(-3,4):
            if ans == 2:
                 break
            for j in range(-(3 - abs(i)), 3 - abs(i) + 1):
                # print(i, j)
                if (r1 + i) + (c1 + j) == r2 + c2 or (r1 + i) - (c1 + j) == r2 - c2:
                    ans = 2
                    break
                else:
                    ans = 3
print(ans)

感想

C問題、結局は嘘解法だったけど、その前に変数のミスで二回WAになっている。変数の付け方に問題があると思われる。
例えば、r1, c1 ではなく a, b にすればよかったと思う。

f:id:matrochca:20201123000648p:plain ともかく次回には茶色になれそう