#include <iostream>
void rearrange_array(int arr[], int size) {
for (int i = 0; i < size; i++) {
arr[i] += (arr[arr[i]] % size) * size;
}
for (int i = 0; i < size; i++) {
arr[i] /= size;
}
}
int main()
{
int arr[] = {3, 5, 0, 2, 1, 4};
int size = sizeof(arr)/sizeof(arr[0]);
// arr[arr[0]] = 2 -> arr[0] = 2
// arr[arr[1]] = 4 -> arr[1] = 4
// arr[arr[2]] = 3 -> arr[2] = 3
// arr[arr[3]] = 0 -> arr[3] = 0
// arr[arr[4]] = 5 -> arr[4] = 5
// arr[arr[5]] = 1 -> arr[5] = 1
rearrange_array(arr, size);
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
}
/*
run:
2 4 3 0 5 1
*/