这不可能是情书吧

mac2024-11-11  10

某MM暗恋ACMore很久了,终于下定决心写一封情书给他。害羞的她不敢直接把心意写到情书上,所以将情书里的内容做了加密处理。 她先把内容写好了,然后将其打乱顺序,接着给出另一个数字序列,表示之前情书中内容的字母的顺序。 比如: 情书打乱了顺序的字符序列 ou!!I le yov 然后数字序列为 9 10 11 12 1 2 3 6 7 8 4 5 按照数字序列中的数字的顺序,就可以将情书本来的内容读出来了! ACMore接到情书后,看着这两个奇怪的序列,一头雾水,这不可能是情书吧!!! 现在请你帮他将情书的内容还原出来吧!

输入 : 输入第一行为一个整数T(0<T<=10),表示有T组测试实例。 每组测试实例包括两行,第一行为一个长度小于等于100的字符串,第二行为一个长度和字符串相等的数字序列。

输出: 输出还原后的情书。

样例输入:

2 ou!!I le yov 9 10 11 12 1 2 3 6 7 8 4 5 eb ot ton ro eb oT 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

样例输出:

I love you!! To be or not to be #include <iostream> #include <algorithm> #include <string> using namespace std; struct node{ char s; int index; }word[110]; int cmp(const node &x1, const node &x2) { return x1.index < x2.index; } int main() { int n; cin >> n; while (n--) { char c = getchar(); string str; getline(cin, str); for (int i = 0; i < str.size(); ++i) { word[i].s = str[i]; cin >> word[i].index; } sort(word, word + str.size(), cmp); for (int i = 0; i < str.size(); ++i) cout << word[i].s; cout << endl; } return 0; }
最新回复(0)