#P3415. Common Substrings

Common Substrings

题目描述

字符串 T 的子串定义为:
T(i, k) = T_i T_{i+1} … T_{i+k-1},其中 1 ≤ i ≤ i+k-1 ≤ |T|(|T| 表示 T 的长度)。
给定两个字符串 A、B 和整数 K,定义集合 S 为满足以下条件的三元组 (i, j, k) 的集合:
S = {(i, j, k) | k ≥ K,且 A(i, k) = B(j, k)}。
求集合 S 的元素个数 |S|。

输入

输入包含多组数据。每组数据的第一行是整数 K,接下来两行分别是字符串 A 和 B。当 K=0 时输入结束。

  • 1 ≤ |A|, |B| ≤ 10^5
  • 1 ≤ K ≤ min(|A|, |B|)
  • 字符串 A 和 B 仅包含拉丁字母。

输出

对每组数据,输出 |S| 的值。

输入示例 1

2  
aababaa  
abaabaa  
1  
xx  
xx  
0  

输出示例 1

22  
5  

题目来源

POJ Monthly--2007.10.06, wintokk