//rotating array k times #include <stdio.h> #include <stdlib.h> //reverse part of an array void reverse_array(int* arr, int start, int end) { for(int i = 0; i < ((end - start) + 1)/2; i++) { int temp = arr[start + i]; arr[start + i] = arr[end - i]; arr[end - i] = temp; } } //function to rotate the array void rotateArray(int* arr, int size, int k) { int num_of_rotations = k % size; if (num_of_rotations == 0) { return; } //reversing reverse_array(arr, 0, size - 1); reverse_array(arr, 0, num_of_rotations - 1); reverse_array(arr, num_of_rotations, size - 1); } int main(void) { int size = 0; scanf("%d", &size); //k stores required number of rotations int k = 0; scanf("%d", &k); //q stores number of queries int q = 0; scanf("%d", &q); int* arr = (int*) malloc(size * sizeof(int)); if(arr == NULL) { printf("memory allocation failed!"); exit(1); } //reading values of array for(int i = 0; i < size; i++) { scanf("%d", &arr[i]); } rotateArray(arr, size, k); //printing answer to given queries for(int i = 0; i < q; i++) { int query = 0; scanf("%d", &query); printf("%d\n", arr[query]); } return 0; }