Mảng dư không

Đề bài

Mô tả

Cho một mảng a gồm n số nguyên dương.

Ban đầu bạn có một số nguyên x=0. Trong mỗi bước, bạn được chọn thực hiện đúng một trong hai thao tác sau:

  1. Chọn đúng một chỉ số i (từ 1 đến n), tăng ai thêm x (tức ai:=ai+x), rồi tăng x thêm 1 (tức x:=x+1).
  2. Chỉ tăng x thêm 1 (tức x:=x+1).

Thao tác loại 1 chỉ được áp dụng nhiều nhất một lần cho mỗi chỉ số i.

Hãy tìm số bước ít nhất cần thực hiện để thu được mảng mà mọi phần tử đều chia hết cho k.

Bạn phải trả lời t truy vấn độc lập.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số lượng truy vấn.
  • Với mỗi truy vấn:
    • Dòng đầu chứa hai số nguyên nk — độ dài mảng và ước số cần thoả.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

Với mỗi truy vấn, in ra một số nguyên là số bước ít nhất cần thực hiện để mọi phần tử của mảng đều chia hết cho k.

Ràng buộc

  • 1t2·104
  • 1n2·105
  • 1k109
  • 1ai109
  • Tổng n trên tất cả các truy vấn không vượt quá 2·105.

Ví dụ

Input Output Giải thích
5
4 3
1 2 1 3
10 6
8 7 1 8 3 7 5 10 8 9
5 10
20 100 50 20 100500
10 25
24 24 24 24 24 24 24 24 24 24
8 8
1 2 3 4 5 6 7 8
6
18
0
227
8
Ở truy vấn 1: cần cộng 2 vào phần tử 2 (khi x=1), cộng 2 vào phần tử 3 (khi x=2), cộng 3 vào phần tử 4 (khi x=3), rồi cộng 5 vào phần tử 1 (khi x=5). Tổng cộng cần 6 bước. Ở truy vấn 3 mọi phần tử đã chia hết cho 10 nên cần 0 bước.
1
1 1000000000
99999999
900000002 Cần cộng x=10999999999=900000001 vào phần tử duy nhất, nên phải đạt x=900000001, tốn 900000002 bước (kể cả bước tăng x cuối cùng).

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0