链接:https://ac.nowcoder.com/acm/contest/3036/M
来源:牛客网
「Rhongomyniad!」
圣枪击穿了圣杯,原本就仅有一个碎片的虚假圣杯,现在更是变成了一撮辉煌的粉末,散失地飞舞在空中。是破碎的无数梦想的实体。并不是为了什么正义,仅仅是有必要结束这一切。由曾是御主(master)的我取得的圣杯的碎片,应当由我去结束这一切。
「师父」
「回去了,格蕾」身边的黑泥应该不久就会自行消散,回归大源了吧
「为什么会变成这样,圣杯不是万能的愿望机吗」
「因为无法实现的愿望就是无法实现啊」我叹了一口气「世界的前进只是在不断的循环。那个人固然是天才,但无法做到的事情就是无法做到。所以他放弃了」
「我不明白」
「人类史的最初可以比作一个字符串,把原本的字符串翻转后拼接到原来的字符串后面,就会得到一个新的字符串,如此的反复,人类史就是如此进行着无限的延伸。所以如果你想要知道这个无限延伸的字符串上的某个字符,是很简单的一件事。但不可能得到那些不存在于这个字符串上的字符啊。」
「那师父为什么你还不放弃呢」
「我想证明这是错误的」
格蕾没有再多问 。
输入描述:
第一行输入n (1<=n<=30)和k (1<=k<=1018),代表字符串最初的长度和所需要知道的字符的序号
第二行输入一个仅由小写字符组成的字符串str,(|str|==n)。其中|str|代表字符串的长度。
输出描述:
输出第k个字符
示例1
输入
复制
3 2
abc
输出
复制
b
说明
关于样例的翻转:
原字符串:abc
翻转并拼接:abccba
翻转并拼接:abccbaabccba
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long k;
char s[105];
int n,a=0;
cin>>n>>k;
cin>>s;
for(int i=n-1;i>=0;i–)//字符串反过来拼接! eg;abccba
{
s[n+a]=s[i];
a++;
}
if(k%(2n))cout<<s[k%(2n)-1]<<endl;
else cout<<s[(2*n)-1]<<endl;
return 0;
}