Yukicoder No.204 ゴールデン・ウィーク(2)
golfにすると面白そうな問題。
入力される$14$個の両側には任意個のx
が続いており、これを自由に使えることに注意。
#!/usr/bin/env python3
def takewhile(s, c):
assert c in 'ox'
f = {'o':'x', 'x':'o'}
try:
return s[:s.index(f[c])]
except:
return s
d = int(input())
s = ''
s += input()
s += input()
s = 'x' * d + s + 'x' * d
ans = 0
for i in range(len(s)):
x = len(takewhile(s[i:], 'o'))
y = min(d, len(takewhile(s[i+x:], 'x')))
z = len(takewhile(s[i+x+y:], 'o'))
ans = max(ans, x + y + z)
print(ans)