Abracadabra

Đề bài

Mô tả

Xét một xâu được xây dựng theo quy tắc đệ quy sau, trên bảng chữ cái gồm 36 ký tự: các chữ cái thường latin a,b,,z (ký tự thứ 1 đến thứ 26), tiếp theo là các chữ số 0,1,,9 (ký tự thứ 27 đến thứ 36).

  • Ở bước thứ nhất, xâu chỉ gồm một ký tự a.
  • Ở bước thứ k, ta nối hai bản sao của xâu thu được ở bước k1, và chèn ký tự thứ k của bảng chữ cái vào giữa.

Ví dụ: bước 2 cho xâu aba, bước 3 cho abacaba, bước 4 cho abacabadabacaba. Xâu thu được ở bước k có đúng 2k1 ký tự.

Gọi S là xâu thu được sau 30 bước (gồm 2301 ký tự, các vị trí đánh số từ 1). Cho hai xâu con của S:

  • Xâu con thứ nhất là S[l1r1] (gồm các ký tự từ vị trí l1 đến r1).
  • Xâu con thứ hai là S[l2r2].

Hãy tìm độ dài xâu con chung dài nhất của hai xâu con này. Nếu chúng không có ký tự chung nào, in ra 0.

Dữ liệu vào

Một dòng duy nhất chứa bốn số nguyên l1,r1,l2,r2.

Dữ liệu ra

In ra một số nguyên duy nhất — độ dài xâu con chung dài nhất của hai xâu con đã chọn.

Ràng buộc

  • 1liri109 với i=1,2.

Ví dụ

Input Output Giải thích
3 6 1 4 2 S=abacaba Xâu con thứ nhất là S[36]=acab, thứ hai là S[14]=abac. Hai xâu con chung dài nhất là acab, đều có độ dài 2.
1 1 4 4 0 Xâu con thứ nhất là a, thứ hai là c. Chúng không có ký tự chung nên kết quả là 0.

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