问题 G: 章节七:失效的魔导通讯仪

问题 G: 章节七:失效的魔导通讯仪

时间限制: 1 Sec  内存限制: 128 MB
提交: 45  解决: 4
[状态] [讨论版] [提交] [命题人:]
题目描述
在一番努力之下,黄瑞士和达达尼昂成功混入了龙堡的内部,然而龙堡的内部还有很多的房间,于是达达尼昂和黄瑞士决定分头去寻找公主。
临分头前,达达尼昂叫住了黄瑞士。
“你是不是一直想成为一名真正的勇者?”
“我知道你一直想成为剑士,而不是治愈系魔法师,也知道你对被我要求练习治愈术而不是剑术一直心有不满。这个问题我过去从来没有跟你聊过,你不妨将你的想法都告诉我。”
黄瑞士道:“成为勇者一直是我的梦想,您也一直是我前进路上的偶像,我从小就从吟游诗人那里听着您的故事长大,如果不能向您那样上阵杀敌对我来说就实在是太遗憾了。”
达达尼昂微笑着望着黄瑞士,一瞬间,他仿佛回到了初次见面时的那个英勇的大骑士的形象。
“我在刚开始成为勇者的时候,曾经听到过这样一句话,这句话一直是我后来成为王国大骑士后的骑士准则。现在我将这句话送给你。”
“勇者不是由他的剑术所决定的,而是由他的伙伴所决定的,拥有伙伴的人才是勇者。”
“刘龙辉作为游侠的天赋非常出色,温锦鹏的剑术和预言术也非常高明,而他们正需要一名治愈系魔法师同伴,不是吗?”
“走吧,先去完成我们的任务。”见到黄瑞士低头陷入了沉默,达达尼昂笑着摸了摸黄瑞士的头,“公主的血脉非常特殊,寻常的魔法对她无效。如果你碰到了公主处于危险中,记得使用这张卷轴上的治愈魔法。”
一阵光芒亮起,黄瑞士和达达尼昂各自传送到了不同的房间。
黄瑞士边研究着手中的魔法卷轴,边思索着哪里有可能遇到公主。
龙堡中的士兵大多集合在了城墙上守卫龙堡,所以龙堡的内部十分的空虚,这也让黄瑞士得以在敌人的内部四处乱晃。
在一个宽阔无比的走廊上,黄瑞士突然听到沉重的脚步声从远处响起,他赶忙躲在一个隔间当中,从门缝里望着外面的动静。
两只体型庞大的飞龙缓步走过了走廊,虽然他们体型并不如黑龙王那般庞大,但他们毫无疑问也是龙族中的王者,黄瑞士认出了他们正是龙堡中的另外两位主人,刘广城和张迎早。
黄瑞士听到他们脚步有些匆忙,想着也许能从他们那里得到昌鹏公主的线索,便连忙用通讯仪联系达达尼昂。
但奇怪的是,不知道魔导通讯仪出现了什么故障,一直得不到发送位置成功的信号,于是只好独自一人跟随两只龙王身后。
过了一段时间,通讯仪突然又有了信号,而且还向他发送了位置,看来达达尼昂那边也有了收获。
正好通讯仪显示的房间离这里不远,于是黄瑞士决定先去找达达尼昂会和。
转过一个拐角,黄瑞士听到了一阵盔甲摔在地板上的声音,他赶忙加快了脚步。
然而当他转过拐角,眼前的景象却直接让他浑身血液倒流。
“公主殿下!”
他看到了一头金发的昌鹏公主浑身是血的站在那里,一道狰狞的伤口出现在她的腋下,她的右手握着宝剑,而左手正提着达达尼昂的人头。
——————————————————————————————————————————————————————————————————————————————

通讯魔导器的通讯将经过三个步骤:
呼叫方发送当前位置,魔导器将当前时刻,当前位置,和一个双方都知道的秘钥相加,然后通过祝福函数加密(你知道是哪个函数),接收方解密呼叫方位置,在接收方返回成功信号之前发送方都会持续呼叫。
解密程序如下:
(王国的程序员为避免大括号换不换行的争议,决定用python写代码。)
def decrypt(hidecode) : # 定义解密函数
    code = receive() # 接受发送者发送的信号
    t = now() #当前时刻
    for u in range(1, n+1): # u从1到n循环
        if homoit(t+u+hidecode) == code: # homoit为祝福函数,homoit(x) = pow(x, x+pow(x, x+114514)%114514)%114514
            break
    if homoit(now()+u+hidecode) == receive():
        call("success")
    else :
        decrypt(hidecode)
假设程序的运行只有循环才会花费时间,且每次循环都只花费一个时刻。
由于黄瑞士也在不停的运动,给出黄瑞士的位置变动表,求出双方匹配成功的时刻。
输入
输入第一行给出两个整数n(1<=n<=100),h(1<=h<=10000)分别表示位置表的长度和秘钥
接下来的n行每行两个整数,分别表示时刻t(0<=t<=10000)和位置u(1<=u<=100),表示黄瑞士在时刻t移动到了位置u,t保证严格递增,且一定从0时刻开始
最后一行给出结束时刻(结束时刻也在尝试匹配)
输出
输出匹配成功的时刻,如果到最后都没有匹配成功则输出None
样例输入 Copy
2 999
0 7
7 8
15
样例输出 Copy
15
提示
黄瑞士在0时刻开始呼叫,到了10时刻都没有收到成功信号
解密程序从0时刻开始工作,到7时刻开始时完成了第一次循环,并尝试二次匹配,但7时刻开始时黄瑞士移动到了位置8,所以匹配失败
解密程序继续从7时刻开始运行,到15时刻开始时循环结束,再次匹配,匹配成功