using System;
class Program
{
static void print(int[] arr) {
int size = arr.Length;
for (int i = 0; i < size; i++) {
Console.Write(arr[i] + " ");
}
Console.WriteLine();
}
static void reorder(int[] arr, int[] indexes, int i) {
int size = arr.Length;
if (i < size) {
int data = arr[i];
reorder(arr, indexes, i + 1);
arr[indexes[i]] = data;
}
}
static void Main() {
int[] arr = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10};
int[] indexes = {1, 0, 4, 3, 2, 5, 9, 7, 8, 6};
print(arr);
print(indexes);
reorder(arr, indexes, 0);
print(arr);
}
}
/*
run:
1 2 3 4 5 6 7 8 9 10
1 0 4 3 2 5 9 7 8 6
2 1 5 4 3 6 10 8 9 7
*/