#PS0000015. Số cách chia ba đoạn (Number of Ways)

Số cách chia ba đoạn (Number of Ways)

Số cách chia ba đoạn (Number of Ways)

Nguồn: Codeforces

Phiên bản: Phước Hưng OJ Extended

Đề bài

Cho mảng gồm nn số nguyên. Hãy đếm số cách chia toàn bộ mảng thành đúng ba đoạn liên tiếp, không rỗng, sao cho tổng của ba đoạn bằng nhau.

Một cách chia được xác định bởi hai vị trí cắt i,ji,j với

1≤i<j<n.1\le i<j<n.

Ba đoạn tương ứng là

[1,i],[i+1,j],[j+1,n].[1,i],\qquad[i+1,j],\qquad[j+1,n].

Input

  • Dòng đầu chứa số nguyên nn.
  • Dòng thứ hai chứa nn số nguyên a1,a2,…,ana_1,a_2,\ldots,a_n.

Output

In số cách chọn hai vị trí cắt để ba đoạn nhận được có tổng bằng nhau.

Subtask

Điều kiện chung đã đối chiếu với nguồn:

  • 1≤n≤5⋅1051\le n\le5\cdot10^5

  • ∣ai∣≤109|a_i|\le10^9

  • Subtask 1 — 20%: n≤40n\le40

  • Subtask 2 — 30%: n≤5000n\le5000.

  • Subtask 3 — 50%: không có điều kiện bổ sung ngoài các điều kiện chung ở trên.

Ví dụ

Input

5
1 2 3 0 3

Output

2

Giải thích

Dãy là

[1,2,3,0,3][1,2,3,0,3]

có tổng bằng 99, nên nếu chia được thì mỗi phần phải có tổng 33.

Có hai cách:

  • cắt sau vị trí 22 và 33: [1,2][1,2], [3][3], [0,3][0,3];
  • cắt sau vị trí 22 và 44: [1,2][1,2], [3,0][3,0], [3][3].

Cả ba phần trong mỗi cách đều có tổng bằng 33, nên đáp án là 22.