Skip to content

Commit 6bb653e

Browse files
committed
JoJo's Incredible Adventures
1 parent cdf7481 commit 6bb653e

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

codeforces/1820b.py

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# https://codeforces.com/problemset/problem/1820/B
2+
3+
def solve(s: str) -> int:
4+
if (begin := s.find("1")) == -1:
5+
return 0
6+
if (s_len := len(s)) == 1:
7+
return 1
8+
9+
max_len = 0
10+
11+
while begin < s_len:
12+
end = (begin + 1) % s_len
13+
14+
while s[end] == "1" and end != begin:
15+
end = (end + 1) % s_len
16+
17+
max_len = max(end - begin if end > begin else s_len - begin + end, max_len)
18+
19+
while s[end] == "0" and end != begin:
20+
end = (end + 1) % s_len
21+
22+
if end <= begin:
23+
break
24+
25+
begin = end
26+
27+
if max_len == s_len:
28+
return s_len * s_len
29+
30+
def area(m: int) -> int:
31+
return m * (max_len - m + 1)
32+
33+
if max_len % 2:
34+
return area((max_len + 1) // 2)
35+
return max(area(max_len // 2), area((max_len + 2) // 2))
36+
37+
38+
def main() -> None:
39+
for _ in range(int(input())):
40+
print(solve(input()))
41+
42+
43+
if __name__ == "__main__":
44+
main()

0 commit comments

Comments
 (0)