n, d = list(map(int, input().split()))
c = list(map(int, input().split()))
d = c
q = int(input())
fthis = []
L = []
R = []
for e in range(n):
fthis.append(e)
for a in range(q):
l, r = list(map(int, input().split()))
R.append(r)
L.append(l)
dd = []
total = []
for t in range(q):
mw = c[L[t] - 1:R[t] + 1]
tot = sum(mw)
dd.append(mw)
total.append(tot)
for i in range(q):
nl = dd[i]
tv = total[i]
st = nl[0]
ed = nl[-1]
th = len(nl)
so = 0
for val in nl:
try:
so = nl.index(0, so, th)
except ValueError:
lz = 0
break
else:
if isinstance(so, int) :
lz = so
so += (so + th)//2
mostb = ed
ns = nl[lz:]
mi = 1
r = 0
while mi <= mostb and mi > 0:
r += 1
mi = min(ns)
g = len(ns)
dele = g - lz
tv -= dele
for i in range(g):
if ns[i] == 1:
idx = i
if len(ns) > 1:
ns = ns[idx:]
else:
tv = tv + r - mostb
break
mi = min(ns)
lz = ns.index(mi, 0, g)
# print(f"g is: {g} dele: {dele} lz: {lz} tv: {tv} mi: {mi}")
# print(ns)
if len(ns) > 1:
ns = ns[lz + 1:]
else:
tv = tv + r - mostb
break
print(tv)
Compilation message (stdout)
Compiling 'Main.py'...
=======
adding: __main__.pyc (deflated 35%)
=======
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |