列表

详情


NC200316. M-破碎的愿望

描述

「Rhongomyniad!」
圣枪击穿了圣杯,原本就仅有一个碎片的虚假圣杯,现在更是变成了一撮辉煌的粉末,散失地飞舞在空中。是破碎的无数梦想的实体。并不是为了什么正义,仅仅是有必要结束这一切。由曾是御主(master)的我取得的圣杯的碎片,应当由我去结束这一切。
「师父」
「回去了,格蕾」身边的黑泥应该不久就会自行消散,回归大源了吧
「为什么会变成这样,圣杯不是万能的愿望机吗」
「因为无法实现的愿望就是无法实现啊」我叹了一口气「世界的前进只是在不断的循环。那个人固然是天才,但无法做到的事情就是无法做到。所以他放弃了」
「我不明白」
「人类史的最初可以比作一个字符串,把原本的字符串翻转后拼接到原来的字符串后面,就会得到一个新的字符串,如此的反复,人类史就是如此进行着无限的延伸。所以如果你想要知道这个无限延伸的字符串上的某个字符,是很简单的一件事。但不可能得到那些不存在于这个字符串上的字符啊。」
「那师父为什么你还不放弃呢」
「我想证明这是错误的」
格蕾没有再多问
 。

输入描述

第一行输入n (1<=n<=30)和k (1<=k<=1018),代表字符串最初的长度和所需要知道的字符的序号
第二行输入一个仅由小写字符组成的字符串str,(|str|==n)。其中|str|代表字符串的长度。

输出描述

输出第k个字符

示例1

输入:

3 2
abc

输出:

b

说明:

关于样例的翻转:

原字符串:abc

翻转并拼接:abccba

翻转并拼接:abccbaabccba

......

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Ruby(2.4.2) 解法, 执行用时: 45ms, 内存消耗: 4600K, 提交时间: 2019-12-07 21:43:45

nk = gets.split
str = gets.chomp

if ((nk[1].to_i - 1) / str.length) % 2 == 0
    puts str[(nk[1].to_i % str.length) - 1]
else
    puts str.reverse[(nk[1].to_i % str.length) - 1]
end

Python3(3.9) 解法, 执行用时: 17ms, 内存消耗: 2808K, 提交时间: 2020-12-02 12:14:31

a,b=map(int,input().split())
c=input()
c+=c[::-1]
print(c[(b-1)%(a*2)])

上一题