一道超难的C++题!哪位厉害的人可以做出来?

【问题描述】
在 2222 年,地球生态已经被摧毁,人类寻找到了宇宙中的下一个栖息地:二号地球。目前有 n 位地
球宇航员正在接受训练,准备从中选取若干人参加二号地球的登陆计划。目前 n 名宇航员一字排
开,这 n 位宇航员可能来自不同的国家,从左到右第 i 名宇航员的国家用一个英文字母缩写 s[i]代
表,可能是小写字母或者大写字母。因为参与的国家不超过 52 个,所以字母是够用的。所以宇航员
序列 s 就是一个字母组成的字符串。具体来说,这些宇航员对应的国家数量恰好为 k,1<=k<=52。
现在要求选入登陆计划的宇航员必须来自序列中的连续段,并且要求 k 个国家里的每个国家选出的
宇航员数量正好相等。请问有多少种选择方案?
【输入格式】输入文件 equality.in
输入第一行为正整数 n。第二行为 n 个字母组成的字符串。
【输出格式】输出文件 equality.out
输出一个整数。