Skip to content

ABC-320

A

解法


B

URLURL\:\to https://atcoder.jp/contests/abc320/tasks/abc320_b

#愚直

s = Word().content
for i in range(len(s), 1-1, -1):
for j in range(len(s)-i+1):
if s[j:j+i]==s[j:j+i][::-1]:
print(i)
exit(0)

解法

i=len(S)1i=len(S) \to 1 に減少させて、j=0len(S)ij = 0 \to len(S)-i に増加させて、Target=S[j:j+i]Target=S[j:j+i] としたとき、Target==Target.reverseTarget==Target.reverse が成り立ったらそこで終了。本当に愚直


C

URLURL\:\to https://atcoder.jp/contests/abc320/tasks/abc320_c

#全探索

m = Integer().content
l = [Word().int()*3 for _ in range(3)]
ans = 10**9
for i in range(len(l[0])):
for j in range(len(l[0])):
if i==j: continue
for k in range(len(l[0])):
if i==k or j==k: continue
if l[0][i]==l[1][j]==l[2][k]:
ans = min(ans, max(i,j,k))
print(ans if ans!=10**9 else -1)

解法

まず、答えの初期値を InfInf に設定する。 それぞれのリールの中身は 33 周するので S1,  S2,  S3S_{1},\;S_{2},\;S_{3}33 倍したのちに、全探索で ijk    and    S1[i]=S2[j]=S3[k]i\ne j\ne k\;\; and\;\; S_{1}[i]=S_{2}[j]=S_{3}[k] が成り立つ場合のみ、Inf=min(Inf,max(i,  j,  k))Inf = min(Inf, max(i,\;j,\;k)) とする。


D

解法


E

解法