2025-10-07 19:48:34 +0300 MSK
Avoid Flood in The City
Links
Code
from sortedcontainers import SortedList
class Solution:
def avoidFlood(self, rains: List[int]) -> List[int]:
ans = [1] * len(rains)
st = SortedList()
mp = {}
for i, rain in enumerate(rains):
if rain == 0:
st.add(i)
else:
ans[i] = -1
if rain in mp:
it = st.bisect(mp[rain])
if it == len(st):
return []
ans[st[it]] = rain
st.discard(st[it])
mp[rain] = i
return ans