trang chủ / bài tập / campsched

Lịch trại

Đề bài

Mô tả

Cho một xâu nhị phân s (chỉ gồm các ký tự '0' và '1'). Bạn được phép sắp xếp lại các ký tự của s theo thứ tự tùy ý, nhưng không được thay đổi số lượng ký tự '0' và số lượng ký tự '1'.

Cho thêm một xâu nhị phân t. Hãy sắp xếp lại s sao cho số lần xuất hiện của t như một xâu con liên tiếp (substring) trong xâu kết quả là lớn nhất có thể.

Hai lần xuất hiện của t được phép chồng lấn nhau (overlap).

Dữ liệu vào

  • Dòng thứ nhất chứa xâu s.
  • Dòng thứ hai chứa xâu t.

Cả hai xâu chỉ gồm các ký tự '0' và '1'.

Dữ liệu ra

In ra một xâu là kết quả sắp xếp lại của s sao cho số lần xuất hiện của t là lớn nhất. Xâu in ra phải có đúng số ký tự '0' và số ký tự '1' như trong s.

Nếu có nhiều đáp án tối ưu, in ra bất kỳ đáp án nào.

Ràng buộc

  • 1|s|5·105
  • 1|t|5·105

Ví dụ

Input Output Giải thích
101101
110
110110 Xâu 110110 chứa 2 lần xuất hiện của 110 (bắt đầu tại vị trí 1 và vị trí 4). Số ký tự 0 và 1 giữ nguyên như 101101.
10010110
100011
10001101 Chỉ có thể tạo được 1 lần xuất hiện của 100011. Đáp án khác cũng được chấp nhận nếu cùng số ký tự 0/1 và cùng số lần xuất hiện tối ưu.
10
11100
01 Không thể tạo dù chỉ một lần xuất hiện của 11100 (thiếu ký tự 1), nên đáp án là bất kỳ hoán vị nào của 10.

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