はじめに
毎回言ってる気がしますが、おひさしぶりです。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の指針は当ってましたが、実装でコケました。
ではまた、おやすみなさい。