Xâu tương đồng (Tin học trẻ C - Vòng Toàn quốc 2020)

Xem PDF

Điểm: 1900 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho 2 xâu \(A\)\(B\) chỉ chứa các kí tự in hoa trong khoảng từ A tới Z. Kí hiệu \(|A|\), \(|B|\) lần lượt là độ dài của hai xâu \(A\)\(B\), (\(1 \le |A|,|B| \le 50000\)). Các kí tự của mỗi xâu được đánh số từ \(1\).

Gọi \(A[i..j]\) là xâu con gồm các kí tự liên tiếp của xâu \(A\) từ vị trí thứ \(i\) đến vị trí thứ \(j\) (\(1 \le i \le j \le |A|\)). Gọi \(B[p..q]\) là xâu con gồm các kí tự liên tiếp của xâu \(B\) từ vị trí thứ \(p\) đến vị trí \(q\) (\(1 \le p \le q \le |B|\)).

Hai xâu con \(A[i..j]\)\(B[p..q]\) được gọi là tương đồng nhau nếu tập hợp các chữ cái xuất hiện trong xâu con \(A[i..j]\) bằng với tập hợp các chữ cái xuất hiện trong xâu con \(B[p..q]\).

Xét ví dụ \(A=\) AAABBC\(B=\) AZACAB ta có:

\(A[3..5]=\) AAB\(B[5..6]=\) AB là tương đồng nhau vì có cùng tập hợp các chữ cái xuất hiện là {A,B}.
\(A[3..6]=\) ABBC\(B[4..6]=\) CAB là tương đồng nhau vì có cùng tập hợp các chữ cái xuất hiện là {A,B,C}.

Yêu cầu: cho xâu \(A\) và xâu \(B\), hãy xác định số bộ \((i,j,p,q)\) (\(1 \le i \le j \le |A|, 1 \le p \le q \le |B|\)) thỏa mãn \(A[i..j]\) tương đồng với \(B[p..q]\).

Input

  • Dòng thứ nhất ghi xâu \(A\).
  • Dòng thứ hai ghi xâu \(B\).

Output

  • Một số nguyên duy nhất là số lượng bộ \((i,j,p,q)\) thỏa mãn yêu cầu.

Scoring

  • Subtask \(1\) (\(10\%\) số điểm): \(1 \le |A|,|B| \le 10\).
  • Subtask \(2\) (\(20\%\) số điểm): \(1 \le |A|,|B| \le 100\).
  • Subtask \(3\) (\(30\%\) số điểm): \(1 \le |A|,|B| \le 1000\).
  • Subtask \(4\) (\(40\%\) số điểm): \(1 \le |A|,|B| \le 50000\).

Example

Test 1
Input
AAABBC
AZACAB
Output
34
Note
  • \(18\) bộ cùng có tập hợp chữ cái là {A}.
  • \(3\) bộ cùng có tập hợp chữ cái là {B}.
  • \(1\) bộ cùng có tập hợp chữ cái là {C}.
  • \(6\) bộ cùng có tập hợp chữ cái là {A, B}.
  • \(6\) bộ cùng có tập hợp chữ cái là {A, B, C}.

Bình luận

Không có bình luận nào.