trang chủ / đề bài / qt_tst_24_a

Xâu đối xứng đôi

Đề bài

Mô tả

Việt Anh định nghĩa xâu đối xứng đôi PADBLE là xâu gồm các kí tự in thường 'a'..'z' trong bảng mã ASCII có độ dài chẵn được ghép thành từ hai xâu con đối xứng có độ dài bằng nhau và có ít nhất hai kí tự khác nhau. Ví dụ xâu "abacdc", "ab", "aabb" là các xâu đối xứng đôi, nhưng xâu "aaaaabbb" không phải là xâu đối xứng đôi.

Nói cách khác, xâu T độ dài 2L (L≥1) là xâu đối xứng đôi khi L kí tự đầu và L kí tự cuối của T đều là xâu đối xứng (đọc xuôi và đọc ngược như nhau), đồng thời T chứa ít nhất hai loại kí tự khác nhau (hai nửa được phép giống nhau, ví dụ "abaaba" là xâu đối xứng đôi).

Yêu cầu: Cho xâu S chỉ chứa các kí tự 'a' và 'b', em hãy lập trình giúp Việt Anh tìm độ dài xâu PADBLE lớn nhất và có bao nhiêu xâu con có cùng độ dài lớn nhất đó trong xâu S. Xâu con là một đoạn các kí tự liên tiếp của S; hai xâu con ở hai vị trí bắt đầu khác nhau được đếm là khác nhau, kể cả khi nội dung giống nhau.

Dữ liệu vào

Một dòng chứa xâu S gồm các kí tự 'a' và 'b'.

Dữ liệu ra

Gồm hai số nguyên là độ dài xâu đối xứng đôi lớn nhất và số xâu con có độ dài lớn nhất đó, cách nhau dấu cách. Nếu không có xâu nào thỏa mãn thì in ra −1.

Ràng buộc

  • 1≤|S|≤106.
  • S chỉ gồm các kí tự 'a' và 'b'.

Subtasks

  • Subtask 1 (40% số test, tương ứng 40% số điểm): |S|≤102.
  • Subtask 2 (30% số test khác, tương ứng 30% số điểm): |S|≤103.
  • Subtask 3 (30% số test còn lại, tương ứng 30% số điểm): |S|≤106.

Ví dụ

Input Output Giải thích
aaabbaabbbaa 4 4 Xâu đối xứng đôi có độ dài lớn nhất là 4 và có 4 xâu con thỏa mãn: "aabb" bắt đầu ở vị trí số 2, "bbaa" bắt đầu ở vị trí số 4, "aabb" bắt đầu ở vị trí số 6, "bbaa" bắt đầu ở vị trí số 9.
aaabbaabbbaaaa 6 1 Xâu đối xứng đôi dài nhất là "bbbaaa" bắt đầu ở vị trí số 8, ghép từ "bbb" và "aaa"; không có xâu con nào khác độ dài 6 thỏa mãn.
aaaaaaaaaa -1 Mọi xâu con chỉ gồm một loại kí tự nên không có xâu đối xứng đôi.
abaaba 6 1 Ví dụ thêm (không có trong đề gốc). Cả xâu là "aba" ghép với "aba": hai nửa giống nhau vẫn hợp lệ vì xâu có hai loại kí tự.

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