Cho 2 xâu \(A\) và \(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\) và \(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]\) và \(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
và \(B=\) AZACAB
ta có:
\(A[3..5]=\) AAB
và \(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
và \(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
- Có \(18\) bộ cùng có tập hợp chữ cái là {
A
}. - Có \(3\) bộ cùng có tập hợp chữ cái là {
B
}. - Có \(1\) bộ cùng có tập hợp chữ cái là {
C
}. - Có \(6\) bộ cùng có tập hợp chữ cái là {
A
,B
}. - Có \(6\) bộ cùng có tập hợp chữ cái là {
A
,B
,C
}.
Bình luận