全排列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

白浅经过一段时间对字符串的学习之后,学会了如何使用递归输出一个字符串的所有全排列(虽然 C++ 中有自带的函数),甚至学会了如何输出所有去重后的全排列(即“本质不同的全排列”)!她拿到了一个字符串 S,现在她将 S 的所有本质不同的全排列按字典序大小进行排序。假如总共有 k 个本质不同的字符串,则这些字符串按照字典序大小分别编号为 1.2.3...k,。白浅在这些字符串中任取了两个字符串 A B,现在她想知道 A 的编号减去 B 的编号等于多少。

输入描述:

输入的第一行包含一个整数 n,代表字符串的长度。()
接下来两行分别给出一个长度为 n 的字符串,分别代表 A, B。注意:字符串仅包含大写字母
保证 A B 都是同一个字符串的全排列。答案对 取模。

输出描述:

输出一个整数代表结果
示例1

输入

复制
4
ABBB
BBBA

输出

复制
1000000004