Tô màu tuyệt vời - 2

Đề bài

Mô tả

Cho một dãy số nguyên a1,a2,,ank màu. Ta muốn tô màu dãy này. Một cách tô được gọi là đẹp nếu thỏa mãn đồng thời các điều kiện sau:

  1. Mỗi phần tử của dãy hoặc được tô bằng đúng một trong k màu, hoặc không được tô.
  2. Hai phần tử bất kỳ được tô cùng một màu thì phải có giá trị khác nhau (tức là không có hai phần tử bằng nhau cùng màu).
  3. Với mỗi màu, gọi số phần tử được tô màu đó là một số — tất cả k số này phải bằng nhau.
  4. Tổng số phần tử được tô là lớn nhất trong tất cả các cách tô thỏa mãn ba điều kiện trên.

Hãy tìm một cách tô màu đẹp cho dãy đã cho.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số lượng bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng thứ nhất chứa hai số nguyên nk — độ dài dãy và số màu.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một dòng gồm n số nguyên c1,c2,,cn (0cik) cách nhau bởi dấu cách, trong đó:

  • ci=0 nếu phần tử thứ i không được tô;
  • ci>0 nếu phần tử thứ i được tô bằng màu ci.

Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 1t104
  • 1kn2·105
  • 1ain
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 2·105.

Ví dụ

Input Output Giải thích
3
10 3
3 1 1 1 1 10 3 10 10 2
4 4
1 1 1 1
1 1
1
1 3 1 2 0 3 2 1 2 3
1 2 3 4
1
Bộ 1: 9 phần tử được tô, mỗi màu 3 phần tử; một phần tử (giá trị 1 thứ tư) bị bỏ. Bộ 2: bốn số 1 tô bốn màu khác nhau. Bộ 3: một phần tử tô màu 1.
2
13 1
3 1 4 1 5 9 2 6 5 3 5 8 9
13 3
3 1 4 1 5 9 2 6 5 3 5 8 9
1 1 1 0 1 1 1 1 0 0 0 1 0
1 3 2 1 3 3 2 3 1 2 2 0 1
Bộ 1 (k=1): mỗi giá trị chỉ được tô một lần, nên với các giá trị lặp lại (1, 5, 3, 9) chỉ giữ một bản. Bộ 2 (k=3): tô được 12 phần tử, mỗi màu 4 phần tử.

Trong cả hai ví dụ trên, đáp án không duy nhất — bất kỳ cách tô đẹp nào cũng được chấp nhận.

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