Gửi bài giải
Điểm:
100,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Người đăng:
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python
Những con bò của nông dân
đứng xếp thành một hàng để biểu tình. Các con bò được đánh số từ ~1~ đến ~n~ theo thứ tự và con bò thứ ~i~ giơ một tấm bảng ghi một số nguyên ~a_i~ thể hiện mức độ ủng hộ với (số càng lớn thì mức độ ủng hộ càng cao, số âm thể hiện sự phản đối của con bò đối với các chính sách của ). Mức độ ủng hộ của một nhóm các con bò liên tiếp được đo bằng tổng mức độ ủng hộ của từng con bò trong nhóm.Để ngăn chặn sự chống đối,
muốn chia các con bò đang đứng thành từng nhóm gồm các con bò liên tiếp sao cho mức độ ủng hộ trong mỗi nhóm đều là số không âm.Hãy tính xem có bao nhiêu cách khác nhau để
có thể làm như vậy.Ví dụ, với ~n = 4~ và các con bò có mức độ ủng hộ lần lượt là ~2, 3, -3, 1~ thì khi đó John có thể có 4 cách chia như sau:
Cách 1: ~1~ nhóm gồm (~2, 3, -3, 1~)
Cách 2: ~2~ nhóm gồm (~2, 3, -3~), (~1~)
Cách 3: ~2~ nhóm gồm (~2~), (~3, -3, 1~)
Cách 4: ~3~ nhóm gồm (~2~), (~3, -3~), (~1~)
INPUT
Dòng đầu tiên chứa số nguyên dương ~n~ (~1 \le n \le 10^5~)
Dòng tiếp theo ghi ~n~ số nguyên ~a_1, a_2, ..., a_n~ hai số liên tiếp được ghi cách nhau một dấu cách (~|A_i| \le 10000~)
OUTPUT
Một số nguyên duy nhất là kết quả thu được sau khi chia lấy dư cho ~10^9 + 9~
SAMPLE INPUT
4
2 3 -3 1
SAMPLE OUTPUT
4