trang chủ / đề bài / cowsplit

Chia Chuỗi COW

Đề bài

Mô tả

Bessie nhận một số nguyên dương N và một chuỗi S độ dài 3N. Chuỗi S được tạo bằng cách nối N chuỗi con, mỗi chuỗi con là một hoán vị vòng của "COW" (tức là "COW", "OWC", hoặc "WCO").

Một "chuỗi vuông" là chuỗi X sao cho X=Y+Y với chuỗi Y nào đó. Ví dụ: "COWCOW" và "CC" là chuỗi vuông, nhưng "COWO" và "OC" thì không.

Mỗi thao tác, Bessie chọn một dãy con T của S sao cho T là chuỗi vuông, rồi xóa các ký tự tương ứng khỏi S. Mục tiêu là biến S thành chuỗi rỗng.

Hãy xác định liệu có thể biến S thành rỗng hay không, và nếu có, đưa ra cách thực hiện.

Dữ liệu vào

  • Dòng 1: Hai số nguyên T và k (k∈{0,1})
  • Với mỗi test case:
    • Dòng 1: Số nguyên N
    • Dòng 2: Chuỗi S độ dài 3N

Dữ liệu ra

Với mỗi test case:

  • Nếu không thể: in −1
  • Nếu có thể:
    • Dòng 1: M -- số thao tác
    • Dòng 2: 3N số nguyên cách nhau bởi dấu cách, số thứ i cho biết ký tự thứ i bị xóa ở thao tác nào (giá trị từ 1 đến M)

Ràng buộc

  • 1≤T≤104
  • 0≤k≤1
  • 1≤N≤105
  • Tổng N qua tất cả test case ≤105

Ví dụ

Input Output Giải thích
3 1
3
COWOWCWCO
4
WCOCOWWCOCOW
6
COWCOWOWCOWCOWCOWC
-1
1
1 1 1 1 1 1 1 1 1 1 1 1
2
2 1 1 2 1 1 1 1 1 1 1 2 1 1 2 1 1 1
N=3 lẻ nên không thể. N=4: toàn bộ chuỗi là chuỗi vuông. N=6: cần 2 thao tác.

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