LoginSignup
0
0

More than 3 years have passed since last update.

はじめに

毎回言ってる気がしますが、おひさしぶりです。4連続冷えを防ぐことに成功しました。

Rainy Season

1WA

考えたこと
Rが連続でいくつあるかをカウントします。


s = input()

if 'RRR' in s:
    print(3)
elif 'RR' in s:
    print(2)
elif 'R' in s:
    print(1)
else:
    print(0)

if文は上から処理されていくので順番に処理されていくので、順番に注意しましょう。私はこれでWAでした。

Making Triangle

考えたこと
三角形の存在条件をやるだけですが、問題文を誤読して時間がかかりました。$N$が小さいの全探索します。

n = int(input())
n = int(input())
l = list(map(int,input().split()))

ans = 0
for i in range(n):
    for j in range(i,n):
        for k in range(j,n):
            if l[i] == l[j] or l[i] == l[k] or l[j] == l[k]:
                continue
            else:
                ver = [l[i],l[j],l[k]] #3辺の長さ
                ver.sort()
                if ver[0] + ver[1] > ver[2]:
                    ans += 1

print(ans)

Walking Takahashi

考えたこと

  • $X$が正で、$X-K*D$も正ならば絶対値が一番近いのは$X-K*D$になります。

  • 同様に、$X$が負で、$X+K*D$も正ならば絶対値が一番近いのは$|X+K*D|$になります。

  • 上のどちらでもない場合を考えます。正の数かつ$K$回以内に移動可能な一番小さい値を$dis$とし、負の数かつ$K$回以内に到達可能な一番小さい値を$dis'$とします。$T (T \leq K)$回目で$dis$に到着したとすると、

    • Tが偶数ならば、$dis → dis' → \dots dis$となります
    • Tが奇数ならば、$dis → dis' → \dots dis'$となります
x, k, d = map(int,input().split())

if x - k * d >= 0:
    print(x - k * d)
elif x + k * d <= 0:
    print(abs(x + k * d))
else:
    dis = x % d
    dis_p = d - dis
    t = k - x // d

    if t % 2 == 0:
        print(dis)
    else:
        print(dis_p)

まとめ

Dの指針は当ってましたが、実装でコケました。
ではまた、おやすみなさい。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0