最近競プロを始めて、せっかくだからコンテスト参加しようと思ってたのに忘れてたのでついさっきやりました。
Cまではできました。
A Rainy Season
こういうことですよね?
s=input()
if s=="RRR":
print(3)
elif "RR" in s:
print(2)
elif "R" in s:
print(1)
else:
print(0)
B Making Triangle
ソートして全探索で間に合うと思ったのでそうしてみました。
3つずつ切り抜いてからソートとどっちが早いんでしょう。私はよくわかってません。
n=int(input())
l=sorted([int(i)for i in input().split()])
ans=0
for i in range(n-2):
for j in range(i,n-1):
for k in range(j,n):
if (l[i]!=l[j]and l[j]!=l[k])and l[k]-l[i]<l[j]:
ans+=1
print(ans)
C Walking Takahashi
こういう数学的問題は個人的に苦手です。
良い感じに切り分けると良さそうだったのでそうしました。
X<0なXから正の方向へD移動するのと|X|から負の方向へD移動するのは座標の絶対値を求めるうえでは同じことなので、とりあえず最初にXを|X|に変換。
まず、kDがXより小さいならX-kDが最小の座標なのは明らか。
次に、k*DがXより大きい場合はX%D(原点を超えない回数移動した際の座標)からk-X/D回移動することになるので、kとX/Dの偶奇が一致するか否かで場合分けします。
同じ場合はX%Dが、違う場合は|X%D-D|が答えになります。
X,k,D=map(int,input().split())
X=abs(X)
ans=0
if X>k*D:
ans=X-(k*D)
else:
if k%2==(X//D)%2:
ans=X%D
else:
ans=abs(X%D-D)
print(ans)
D Moving Piece
ここまで書いたけど単純な全列挙だとTLEだよなあと思いました。
D問題からはぐっと競プロっぽくなるというかぱっと見で何言ってるのかわからなくなるというか……。
人とは……宇宙とは……。
n,k=map(int,input().split())
p=[int(i)for i in input().split()]
c=[int(i)for i in input().split()]
score=[0 for i in range(n)]