AtCoder Beginner Contest 097/AtCoder Regular Contest 097

はい。
https://beta.atcoder.jp/contests/abc097

A - Colorful Transceivers

Python3

a,b,c,d=map(int,input().split())
print("Yes" if abs(a-c)<=d or (abs(a-b)<=d and abs(b-c)<=d) else "No")

a,cで直接か、a,bしてb,cか両方を確認する。

B - Exponential

Python3

x=int(input())
ans=chk=1
for i in range(x):
    for j in range(2,11):
        chk=i**j
        if chk<=x: ans=max(ans,chk)
    
print(ans)

よくわかってなくて最初は2乗しか見てなくて落ちた。多分、23で8になったりするのに2乗しか見てないと余裕で落ちるはず。何乗までみればいいか、TLEしないかとかは特に根拠もなく2〜10乗までチェックにして一応AC、これはこれでありでしょう。

C - K-th Substring

Python3

s=input()
k=int(input())
n=len(s)
d=set()
for i in range(n):
    #for j in range(i,n):
    for j in range(i,min(n,i+5)):
        d.add(s[i:j+1])
ans=sorted(list(d))
print(ans[k-1])

当初のアプローチでは部分点だけ取ってTLE。文字列色々取り出すのに実は5文字より長い文字列取り出す必要はないので多重ループの内側は for j in range(i,min(n,i+5)) にする。これでTLE解消します。うーん、、、悔しいですね。