---
# System prepended metadata

title: Prefix sum

---

# Mảng cộng dồn
### Bài 2:
- Tính tổng đoạn s(u,v)
```python= 
n,x,q = map(int,input().split())
a = [int(i) for i in input().split()]

f = [0]
for i in range(n):
    f.append(a[i]+f[i])
    
d = 0
for _ in range(q):
    u,v = map(int,input().split())
    s = f[v] - f[u - 1]
    if s < x: 
        d += 1
print(d)

#a = [0] + a
#a = [0,7,2,1,6,5]
#f = [0,7,9,10,16,21]
#u = 2, v = 3
#f[3] - f[1]
#10 - 7 = 3
# sum(a[i:j]) = f[j] - f[i - 1]
```

### Bài 3
```python=
#a = 1 0 0 1 1 1 0 1 1 0 
#b = 1 -1 -1 1 1 1 -1 1 1 -1 
#f = 0 1 0 -1 0 1 2 1 2 3 2 
#c[0] = 0 
#f[4] = 0
#c[1] = 1 
#f[7] = 1
n = int(input())
a = [int(i) for i in input().split()]

f = [0]
for i in a: 
    if i == 1:
        f.append(f[-1] + 1)
    else:
        f.append(f[-1] - 1)
c = {}
_max = 0
for i in range(1,n+1):
    if f[i] not in c:
        c[f[i]] = i
    else:
        _max = max(i-c[f[i]],_max)
print(_max)
```