问题 A: 章节一:瑞士少爷的勇者之旅

问题 A: 章节一:瑞士少爷的勇者之旅

时间限制: 1 Sec  内存限制: 128 MB
提交: 257  解决: 29
[状态] [讨论版] [提交] [命题人:]
题目描述
冒险是少年永恒的主题,而屠龙则是冒险永恒的主题。
在无限的平行宇宙中,有无穷多的黄瑞士,而在其中的某个存在剑与魔法的世界,我们少年勇者黄瑞士的故事就发生在那里。
像所有的冒险故事开始时那样,我们出身于zzuli城堡的瑞士少爷在他成年的那一年里接受了领主的召见和委托,踏上了寻找龙堡解救cc王国国王的女儿昌鹏公主的旅程。
而所有初出茅庐的勇者小鬼,在踏上勇者之路后所发愁第一件事往往都是同一件事情:
我该怎么起个拉风的称号?
不屈的斗士?听起来不够有气势。
嗜血的男爵?听起来像个吸血鬼。
他找到起名大师刘龙辉,刘龙辉建议他叫毒奶的教父,被黄瑞士揍了一顿。
最后,他找到了自己的占卜师好友温锦鹏,请他帮忙给自己占卜出一个带有祝福之力的称号。
—————————————————————————————————————————————

每个称号由一个形容词和一个名词组成。
我们认为一个称号是有祝福之力的,当且仅当称号中形容词和名次的长度都是祝福值。
在cc王国中,祝福值由以下公式定义:
如果一个数x满足:
如果存在一个 i 属于[0, 114514) 使得x == homoit(i),则称x是祝福值。
homoit(x) = pow(x, x+pow(x, x+114514)%114514)%114514 (pow(x,y)表示x的y次方,注意0的0次方应该为1)
同时,黄瑞士还希望他的称号足够拉风,当俩个单词的相加长度大于k时则认为这个称号是拉风的。
现在温锦鹏将给你一本精灵字典,请你帮助黄瑞士找到字典序最小的称号。
输入
输入第一行给出三个整数n,m,k,分别表示形容词的个数,名次的个数和k(1<=n,m<=3000,1<=k<114514)
接下来两行分别给出形容词表和名次表(所有单词总长度小于114514,同一行的单词不会有重复)
输出
输出符合条件的字典序最小的称号,没有则输出None
样例输入 Copy
5 3 4
_dunaide_ shixuede luanshade amazing awasome 
Godfather acmer jianshi
样例输出 Copy
_dunaide_ Godfather
提示
int POW(int x,int y)
{
    int ans = 1;
    for(int i=1;i<=y;i++) ans = ans * x % mod;
    return ans;
}

int quick_POW(int x,int y)
{
    if(y==0) return 1;
    int tmp = quick_POW(x, y/2);
    if(y%2==1)
        return tmp*tmp%mod*x%mod;
    return tmp*tmp%mod;
}
下面的函数为上面函数的快速方法
请自行注意数据范围


读入请避免使用gets/getline