for文を用いて解くことができます。
リストを順番に取得して、の文字目を順番に出力します。
xxxxxxxxxx
N = int(input()) # 文字列Sの文字数
S = input() # 暗号文字列
A = list(map(int, input().split())) # 並べ替え情報(リスト)
for i in A:
print(S[i], end='')
xxxxxxxxxx
int main() {
int N; // 文字列Sの文字数
char S[10]; // 暗号文字列
// 入力
scanf("%d", &N);
scanf("%s", S);
// 並べ替え情報に基づいて暗号文字列を出力
for (int i = 0; i < N; i++) {
int ai;
scanf("%d", &ai);
printf("%c", S[ai]);
}
return 0;
}
xxxxxxxxxx
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); // 文字列Sの文字数
String S = sc.next(); // 暗号文字列
// 並べ替え情報に基づいて暗号文字列を出力
for (int i = 0; i < N; i++) {
int ai = sc.nextInt();
System.out.print(S.charAt(ai));
}
sc.close();
}
}
xxxxxxxxxx
using namespace std;
int main() {
int N; // 文字列Sの文字数
string S; // 暗号文字列
// 入力
cin >> N;
cin >> S;
// 並べ替え情報に基づいて暗号文字列を出力
for (int i = 0; i < N; i++) {
int ai;
cin >> ai;
cout << S[ai];
}
return 0;
}