fork(3) download
  1. def sushi(s):
  2. L = list(map(lambda x: int(x) if x.isdigit() else 0, list(s)))
  3. N = len(L)
  4. A = [0] *N
  5. for i,v in enumerate(L):
  6. for j in range(v): A[(i+j)%N] += 1
  7. m = max(A)
  8. val = N*m - list(reversed(A)).index(m)
  9. if len(set(A))>1 : return val
  10. m = max(map(lambda x: x[0]+x[1]-N, enumerate(L)))
  11. return val + (0 if m < 0 else m)
  12.  
  13. PROBLEM = [
  14. "2_22",
  15. "12_3",
  16. "313__",
  17. "4_35_1264_23_434",
  18. "123456789123456789",
  19. "88967472612377988186",
  20. "19898693316679441672",
  21. "93769682716711132249893" ]
  22. for s in PROBLEM: print(sushi(s), ":",s)
Success #stdin #stdout 0.03s 9212KB
stdin
Standard input is empty
stdout
8 : 2_22
6 : 12_3
8 : 313__
60 : 4_35_1264_23_434
98 : 123456789123456789
149 : 88967472612377988186
170 : 19898693316679441672
170 : 93769682716711132249893