/*
Creator : t-rex-007
*/
//Find index element after performing rotation queries
#include<bits/stdc++.h>
using namespace std;
int find_element(int arr[], int rot, int range[][2], int index){
int left, right;
for (int i = rot - 1; i >= 0; i--){
left = range[i][0];
right = range[i][1];
if (left <= index && right >= index){
if (index == left)
index = right;
else
index--;
}
}
return arr[index];
}
int main(){
int arr[] = {1,2,3,4,5};
int rot = 2, index = 1, ele;
int range[rot][2] = {{0,2}, {0,3}};
ele = find_element(arr, rot, range, index);
cout << ele <<endl;
return 0;
}
Ci8qCkNyZWF0b3IgOiB0LXJleC0wMDcKKi8KCi8vRmluZCBpbmRleCBlbGVtZW50IGFmdGVyIHBlcmZvcm1pbmcgcm90YXRpb24gcXVlcmllcwojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBmaW5kX2VsZW1lbnQoaW50IGFycltdLCBpbnQgcm90LCBpbnQgcmFuZ2VbXVsyXSwgaW50IGluZGV4KXsKCWludCBsZWZ0LCByaWdodDsKCWZvciAoaW50IGkgPSByb3QgLSAxOyBpID49IDA7IGktLSl7CgkJbGVmdCA9IHJhbmdlW2ldWzBdOwoJCXJpZ2h0ID0gcmFuZ2VbaV1bMV07CgoJCWlmIChsZWZ0IDw9IGluZGV4ICYmIHJpZ2h0ID49IGluZGV4KXsKCQkJaWYgKGluZGV4ID09IGxlZnQpCgkJCQlpbmRleCA9IHJpZ2h0OwoJCQllbHNlCgkJCQlpbmRleC0tOwoJCX0KCX0KCglyZXR1cm4gYXJyW2luZGV4XTsKfQoKaW50IG1haW4oKXsKCWludCBhcnJbXSA9IHsxLDIsMyw0LDV9OwoJaW50IHJvdCA9IDIsIGluZGV4ID0gMSwgZWxlOwoJaW50IHJhbmdlW3JvdF1bMl0gPSB7ezAsMn0sIHswLDN9fTsKCgllbGUgPSBmaW5kX2VsZW1lbnQoYXJyLCByb3QsIHJhbmdlLCBpbmRleCk7Cgljb3V0IDw8IGVsZSA8PGVuZGw7CglyZXR1cm4gMDsKfQ==