Khoảng cách Hamming

Đề bài

Mô tả

Khoảng cách Hamming giữa hai xâu ab có cùng độ dài, ký hiệu h(a,b), là số vị trí i (1i|a|) mà aibi. Ví dụ h("aba","bba")=1 vì hai xâu chỉ khác nhau ở ký tự đầu tiên, còn h("bbba","aaab")=4.

An có một tờ giấy ghi bốn xâu s1,s2,s3,s4 có cùng độ dài, mỗi xâu chỉ gồm hai chữ cái thường "a" và "b". An đã tính khoảng cách Hamming giữa mọi cặp xâu, rồi làm mất tờ giấy ghi các xâu nhưng vẫn giữ được sáu giá trị khoảng cách đó.

Hãy khôi phục lại bộ xâu: tìm bốn xâu s1,s2,s3,s4 có cùng độ dài, chỉ gồm các chữ cái "a" và "b", sao cho h(si,sj)=h(si,sj) với mọi cặp i<j.

Trong tất cả các bộ xâu thỏa mãn, hãy chọn bộ có độ dài nhỏ nhất. Nếu có nhiều bộ cùng đạt độ dài nhỏ nhất, in ra một bộ bất kỳ.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên h(s1,s2), h(s1,s3), h(s1,s4).
  • Dòng thứ hai chứa hai số nguyên h(s2,s3), h(s2,s4).
  • Dòng thứ ba chứa một số nguyên h(s3,s4).

Dữ liệu ra

Nếu không tồn tại bộ xâu nào thỏa mãn, in ra 1.

Ngược lại, dòng đầu in ra số nguyên len là độ dài chung nhỏ nhất của bốn xâu. Bốn dòng tiếp theo, dòng thứ i in ra xâu si.

Ràng buộc

  • 0h(si,sj)105 với mọi cặp i<j.
  • Có ít nhất một giá trị h(si,sj) dương.

Ví dụ

Input Output Giải thích
4 4 4
4 4
4
6
aaaaaa
bbbbaa
bbaabb
aabbbb
Sáu khoảng cách đôi một đều bằng 4. Bộ xâu độ dài 6 ở trên thỏa mãn, và không tồn tại bộ nào ngắn hơn. Đáp án khác cùng độ dài 6 cũng được chấp nhận.
0 1 0
1 0
1
1
a
a
b
a
h(s1,s3)=h(s2,s3)=h(s3,s4)=1, các khoảng cách còn lại bằng 0, nên s1=s2=s4s3 khác chúng đúng một vị trí. Một ký tự là đủ.
1 1 1
1 1
1
-1 Xét ba xâu bất kỳ, tổng ba khoảng cách đôi một giữa chúng luôn là số chẵn. Ở đây h(s1,s2)+h(s1,s3)+h(s2,s3)=3 là số lẻ nên không có bộ xâu nào thỏa mã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