# HackerRank 'Sherlock and Watson' Solution

Martin Kysel · March 20, 2015

##### Short Problem Definition:

John Watson performs an operation called Right Circular Rotation on an integer array [a0, a1, … an-1]. Right Circular Rotation transforms the array from [a0, a1, … aN-1] to [aN-1, a0,… aN-2].

He performs the operation K times and tests Sherlock’s ability to identify the element at a particular position in the array. He asks Q queries. Each query consists of one integer, idx, for which you have to print the element at index idx in in the rotated array, i.e., aidx.

Sherlock and Watson

##### Complexity:

time complexity is `O(1)`

space complexity is `O(1)`

##### Execution:

I could rotate the array before going into the test cases, but I can simply rotate the array on the fly by adding the rotation to the element index.

##### Solution:
``````
#!/usr/bin/py
if __name__ == '__main__':
n,k,q = map(int, raw_input().split())
arr = map(int, raw_input().split())
for _ in xrange(q):
x = int(raw_input())
print arr[(x-k)%n]
``````