Cân bằng số dư

Đề bài

Mô tả

Cho một số nguyên n chia hết cho 3 và một mảng a1,a2,,an.

Mỗi bước, bạn chọn một chỉ số i (1in) và thay ai bằng ai+1. Một chỉ số có thể được chọn nhiều lần ở các bước khác nhau.

Gọi c0, c1, c2 lần lượt là số phần tử của mảng a có số dư 0, 1, 2 khi chia cho 3. Mảng a được gọi là cân bằng số dư nếu c0=c1=c2.

Hãy tìm số bước ít nhất cần thực hiện để mảng a trở nên cân bằng số dư.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên t (1t104) là số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm hai dòng:
    • Dòng thứ nhất chứa một số nguyên n (3n3·104) là độ dài mảng a. Đảm bảo n chia hết cho 3.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an (0ai100).

Tổng n trên tất cả các bộ dữ liệu không vượt quá 150000.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng số bước ít nhất cần thực hiện để mảng a cân bằng số dư.

Ràng buộc

  • 1t104
  • 3n3·104, n chia hết cho 3
  • 0ai100
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 150000

Ví dụ

Input Output Giải thích
4
6
0 2 5 5 4 8
6
2 0 2 1 0 0
9
7 1 3 4 2 10 3 9 6
6
0 1 2 3 4 5
3
1
3
0
Bộ 1: ban đầu c0=1, c1=1, c2=4. Tăng a3, a6, a1 mỗi số một lần được mảng [1,2,6,5,4,9] với c0=c1=c2=2. Bộ 2: chỉ cần tăng a2 một lần. Bộ 4: mảng đã cân bằng sẵn nên đáp án là 0.
3
3
0 1 2
3
5 5 5
6
2 2 2 2 2 2
0
3
6
Bộ 2: cả ba số đều có số dư 2. Đưa một số về số dư 0 tốn 1 bước, đưa một số khác về số dư 1 tốn 2 bước, tổng cộng 3. Bộ 3: sáu số cùng số dư 2, cần đưa hai số về số dư 0 (1 bước mỗi số) và hai số về số dư 1 (2 bước mỗi số), tổng cộng 6.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0