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

Ba dãy con rời nhau

Đề bài

Mô tả

Cho một xâu S gồm n chữ cái latin in thường, gọi là văn bản.

Ta theo dõi thêm ba xâu t1, t2, t3; ban đầu cả ba đều rỗng.

Bộ ba xâu này được gọi là tương thích với văn bản nếu có thể tô màu một số ký tự của S bằng ba màu 1, 2, 3, mỗi ký tự được tô nhiều nhất một màu, sao cho với mọi i, xâu thu được từ S bằng cách chỉ giữ lại các ký tự mang màu i (giữ nguyên thứ tự) đúng bằng ti. Nói cách khác, t1, t2, t3 phải là ba dãy con của S đôi một không dùng chung vị trí nào.

q thao tác thay đổi, mỗi thao tác thuộc một trong hai dạng:

  • + i c: thêm ký tự c vào cuối xâu ti;
  • - i: xoá ký tự cuối của xâu ti.

Sau mỗi thao tác, hãy cho biết ba xâu hiện tại có tương thích với văn bản hay không.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên nq.
  • Dòng thứ hai chứa xâu S gồm n chữ cái latin in thường.
  • q dòng tiếp theo, mỗi dòng mô tả một thao tác theo đúng một trong hai dạng + i c hoặc - i.

Dữ liệu ra

Gồm q dòng. Dòng thứ j ghi YES nếu sau thao tác thứ j ba xâu tương thích với văn bản, ngược lại ghi NO.

Ràng buộc

  • 1n105
  • 1q1000
  • i{1,2,3}c là một chữ cái latin in thường
  • Thao tác - i chỉ xuất hiện khi ti đang khác rỗng
  • Tại mọi thời điểm, độ dài mỗi xâu ti không vượt quá 250

Ví dụ

Input Output Giải thích
6 8
abbaab
+ 1 a
+ 2 a
+ 3 a
+ 1 b
+ 2 b
+ 3 b
- 1
+ 2 z
YES
YES
YES
YES
YES
NO
YES
NO
Sau thao tác thứ 5 ta có t1=ab, t2=ab, t3=a: năm ký tự này vừa đủ nằm rời nhau trong abbaab. Thao tác thứ 6 làm t3=ab; ba xâu cần đúng ba chữ a và ba chữ b, vừa bằng số lượng có trong abbaab nên bắt buộc phải dùng hết cả sáu vị trí. Ba chữ a nằm ở vị trí 1,4,5 và ba chữ b nằm ở vị trí 2,3,6, mà hai chữ a ở vị trí 45 chỉ còn đúng chữ b ở vị trí 6 đứng sau, nên không ghép được ba cặp rời nhau. Thao tác thứ 8 thêm chữ z không hề xuất hiện trong văn bản.
6 8
abdabc
+ 1 a
+ 1 d
+ 2 b
+ 2 c
+ 3 a
+ 3 b
+ 1 c
- 2
YES
YES
YES
YES
YES
YES
NO
YES
Sau thao tác thứ 6 ta có t1=ad, t2=bc, t3=ab. Đánh số các vị trí của abdabc từ 1 đến 6: tô màu 1 cho các vị trí 1,3, màu 2 cho các vị trí 2,6, màu 3 cho các vị trí 4,5. Thao tác thứ 7 làm t1=adc, khi đó cả ba xâu cần tổng cộng bảy ký tự trong khi văn bản chỉ dài sáu.

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 csc 6.12.0.200 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 kotlinc 2.4.10 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0