Advertisement
Pastehsjsjs

Untitled

May 4th, 2023
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | Source Code | 0 0
  1. with open('/Users/alex26/Desktop/27A.txt', 'r') as f:
  2. data = [int(i) for i in f.read().strip().split('\n')][1:]
  3.  
  4. k = 123
  5. pref = [0] * k
  6. prefdl = [0] * k
  7. s = 0
  8. s_min, dl_max = 10 ** 10, 0
  9. for i in range(len(data)):
  10. x = data[i]
  11. dl = i + 1
  12. s += x
  13. if s % k == 0 and pref[s % k] == 0:
  14. if s < s_min:
  15. dl_max = dl
  16. s_min = s
  17. elif s == s_min and dl > dl_max:
  18. dl_max = dl
  19. s_min = s
  20. elif pref[s % k] != 0 and s % k == 0:
  21. if s < s_min:
  22. dl_max = dl
  23. s_min = s
  24. elif s == s_min and dl > dl_max:
  25. dl_max = dl
  26. s_min = s
  27.  
  28. st = s - pref[s % k]
  29. new_dl = abs(dl - prefdl[s % k])
  30. if st < s_min:
  31. dl_max = new_dl
  32. s_min = st
  33. elif st == s_min and new_dl > dl_max:
  34. dl_max = new_dl
  35. s_min = st
  36. elif pref[s % k] != 0 and s % k != 0:
  37. st = s - pref[s % k]
  38. new_dl = abs(dl - prefdl[s % k])
  39. if st < s_min:
  40. dl_max = new_dl
  41. s_min = st
  42. elif st == s_min and new_dl > dl_max:
  43. dl_max = new_dl
  44. s_min = st
  45.  
  46. pref[s % k] = min(s, pref[s % k]) if pref[s % k] != 0 else s
  47. prefdl[s % k] = dl
  48. print(dl_max, s_min)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement