Hai Mảng

Đề bài

Mô tả

Cho một mảng a gồm n số nguyên không âm và một số nguyên T.

Với một mảng b có độ dài m, định nghĩa độ xui của b, ký hiệu f(b), là số cặp chỉ số (i,j) thỏa mãn 1≤i<j≤m và bi+bj=T.

Bạn phải tô màu mỗi phần tử của a bằng một trong hai màu: trắng hoặc đen (màu của mỗi phần tử được chọn độc lập). Sau đó tạo hai mảng c và d: tất cả phần tử màu trắng thuộc c, tất cả phần tử màu đen thuộc d (một trong hai mảng có thể rỗng). Thứ tự các phần tử trong c và d giữ nguyên như trong a.

Hãy tô màu sao cho f(c)+f(d) nhỏ nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên t , số lượng bộ dữ liệu. Sau đó là t bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm:
    • Dòng thứ nhất chứa hai số nguyên n và T.
    • 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 n số nguyên p1,p2,…,pn (mỗi pi bằng 0 hoặc 1) là màu của các phần tử. Nếu pi=0 thì ai màu trắng (thuộc c), ngược lại ai màu đen (thuộc d).

Nếu có nhiều cách tô làm f(c)+f(d) nhỏ nhất, in ra bất kỳ cách nào.

Ràng buộc

  • 1≤t≤1000
  • 1≤n≤105
  • 0≤T≤109
  • 0≤ai≤109
  • Tổng của n trên tất cả các bộ dữ liệu không vượt quá 105.

Ví dụ

Input Output Giải thích
2
6 7
1 2 3 4 5 6
3 6
3 3 3
0 0 0 1 1 1
0 1 0
Bộ 1: c=[1,2,3], d=[4,5,6], không có cặp nào tổng 7 nên f(c)+f(d)=0. Bộ 2: c=[3,3], d=[3], cặp hai số 3 trong c có tổng 6 nên f(c)+f(d)=1. Đây là giá trị nhỏ nhất vì cả ba số 3 đều có thể ghép đôi với nhau.
1
6 10
1 9 2 8 3 7
0 1 0 1 0 1 Các cặp có tổng 10 là (1,9),(2,8),(3,7). Tách mỗi cặp về hai mảng khác nhau nên f(c)+f(d)=0.

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