trang chủ / đề bài / revstring

Đi qua rồi đi lại

Đề bài

Mô tả

Cho xâu s và một con chip. Bạn đặt chip lên một ký tự bất kỳ của s, sau đó:

  1. Di chuyển chip sang phải một số lần (có thể là 0 lần): nếu chip đang ở vị trí i thì chuyển sang vị trí i+1. Không thể sang phải nếu chip đang ở vị trí cuối cùng.
  2. Tiếp theo, di chuyển chip sang trái một số lần (có thể là 0 lần): nếu chip đang ở vị trí i thì chuyển sang vị trí i−1. Không thể sang trái nếu chip đang ở vị trí đầu tiên.

Mỗi lần đặt chip hoặc di chuyển chip, bạn ghi lại ký tự tại vị trí chip vừa đến. Ví dụ với s= abcdef, đặt chip lên ký tự thứ 3, sang phải 2 lần rồi sang trái 3 lần, ta ghi được xâu cdedcb.

Cho hai xâu s và t, hãy cho biết có cách thực hiện các thao tác trên với s để xâu ghi được đúng bằng t hay không.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên q, số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm hai dòng: dòng thứ nhất chứa xâu s, dòng thứ hai chứa xâu t.

Dữ liệu ra

Với mỗi bộ dữ liệu, in YES nếu có thể ghi được xâu t, ngược lại in NO.

Ràng buộc

  • 1≤q≤500
  • 1≤|s|≤500, 1≤|t|≤2·|s|−1
  • s và t chỉ gồm chữ cái tiếng Anh in thường.
  • Tổng |s| trong một file dữ liệu không vượt quá 500.

Ví dụ

Input Output Giải thích
6
abcdef
cdedcb
aaa
aaaaa
aab
baaa
ab
b
abcdef
abcdef
ba
baa
YES
YES
NO
YES
YES
NO
Bộ 1 là ví dụ trong đề. Bộ 2: đặt chip ở vị trí 1, sang phải 2 lần rồi sang trái 2 lần. Bộ 4: đặt chip ở vị trí 2 và không di chuyển. Bộ 5: đặt chip ở vị trí 1 rồi sang phải 5 lần.
1
aaaaaaaaab
aba
YES Đặt chip ở vị trí 9, sang phải 1 lần (đến b) rồi sang trái 1 lầ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.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