为什么老是 UKE
#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<int> a, b; // 用 vector 存储数组 a 和 b
string s;
void solve(int n, int m) {
a.resize(n + 1);
b.resize(n);
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
getline(cin, s);
getline(cin, s);
for (int i = 1; i <= n; i++) {
int p1 = a[i], cnt = 1;
while (p1 != i) {
p1 = a[p1];
cnt++;
}
int p2 = i;
for (int j = 1; j <= m % cnt; j++) {
p2 = a[p2];
}
b[p2 - 1] = (int)s[i - 1];
}
for (int i = 0; i < n; i++) {
cout << static_cast<char>(b[i]);
}
cout << endl;
}
int main() {
int n, m;
while (cin >> n >> m && n && m) {
solve(n, m);
}
return 0;
}