trang chủ / đề bài / tq_tst_23_d

Chia ba

Đề bài

Mô tả

Cho một dãy a gồm n số nguyên không âm a1,a2,…,an. Hãy chia dãy a thành ba đoạn con, đoạn thứ nhất gồm một hoặc một số các phần tử đầu tiên của dãy a, đoạn thứ hai gồm một hoặc một số phần tử tiếp theo của dãy a, đoạn thứ ba gồm các phần tử còn lại của dãy a thỏa mãn các điều kiện sau:

  • Tổng các phần tử của đoạn con thứ nhất chia hết cho 3.
  • Tổng các phần tử của đoạn con thứ hai chia 3 dư 1.
  • Tổng các phần tử của đoạn con thứ ba chia 3 dư 2.

Hai cách chia được coi là khác nhau nếu vị trí kết thúc của đoạn thứ nhất hoặc của đoạn thứ hai khác nhau.

Yêu cầu: Hãy cho biết có bao nhiêu cách chia dãy a thỏa mãn các điều kiện trên.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương n là số phần tử của dãy a (1≤n≤106).
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an (0≤ai≤109 với 1≤i≤n).

Dữ liệu ra

In ra một số nguyên duy nhất là số cách chia dãy a thỏa mãn các điều kiện trên.

Ràng buộc

  • 1≤n≤106.
  • 0≤ai≤109 với 1≤i≤n.

Subtasks

Điểm được tính theo từng test.

  • Subtask 1 (30% số test): 3≤n≤100.
  • Subtask 2 (40% số test): 100<n≤5000.
  • Subtask 3 (30% số test): 5000<n≤106.

Ví dụ

Input Output Giải thích
7
2 1 3 0 4 0 5
6 Đoạn thứ nhất là [2,1], [2,1,3] hoặc [2,1,3,0] (tổng 3, 6, 6); đoạn thứ hai kết thúc tại a5 hoặc a6 (tổng tiền tố 10 chia 3 dư 1), đoạn thứ ba là [0,5] hoặc [5] (tổng 5 chia 3 dư 2). Có 3·2=6 cách.
5
0 0 1 1 1
2 Ví dụ bổ sung (không có trong đề gốc). Hai cách: [0]∣[0,1]∣[1,1] và [0,0]∣[1]∣[1,1]. Đoạn thứ nhất không được rỗng nên không tính cách []∣[0,0,1]∣[1,1].

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0