Based on the problem in GeeksForGeeks [here][1]. I came across a solution [here][2].↵
↵
The question is as follows↵
↵
Given an array arr[] of N integers. Do the following operation n-1 times. ↵
For every Kth operation:↵
↵
Right rotate the array clockwise by 1.↵
↵
Delete the (n-k+1)th last element.↵
↵
Now, find the element which is left at last.↵
↵
If (n-k+1)th last element doesnt exist, delete the first.↵
↵
Test Cases -↵
↵
Input↵
↵
2↵
↵
4↵
↵
1 2 3 4↵
↵
6↵
↵
1 2 3 4 5 6↵
↵
Output↵
↵
2↵
↵
3↵
↵
Explanation -↵
Testcase 2: A = {1, 2, 3, 4, 5, 6}. Rotate the array clockwise i.e. after rotation the array A = {6, 1, 2, 3, 4, 5} and delete the last element that is {5} so A = {6, 1, 2, 3, 4}. Again rotate the array for the second time and deletes the second last element that is {2} so A = {4, 6, 1, 3}, doing these steps when he reaches 4th time, 4th last element does not exists so he deletes 1st element ie {1} so A={3, 6}. So continuing this procedure the last element in A is {3}, so outputp will be 3.↵
↵
Can someone please help me understand the solution.↵
Primarily I need help in the following block:↵
↵
if(n==1) cout<<arr[0]<<endl;↵
else if(n%2) {↵
ll ind = n-3;↵
ind = floor(ind/4);↵
ind = 3+ind;↵
cout<<arr[ind-1]<<endl;↵
} else {↵
ll ind = n-2;↵
ind = floor(ind/4);↵
ind = 2+ind;↵
cout<<arr[ind-1]<<endl;↵
}↵
↵
[1]: https://practice.geeksforgeeks.org/problems/rotate-and-delete/0↵
[2]: https://ide.geeksforgeeks.org/pkbUpmrCFi
↵
The question is as follows↵
↵
Given an array arr[] of N integers. Do the following operation n-1 times. ↵
For every Kth operation:↵
↵
Right rotate the array clockwise by 1.↵
↵
Delete the (n-k+1)th last element.↵
↵
Now, find the element which is left at last.↵
↵
If (n-k+1)th last element doesnt exist, delete the first.↵
↵
Test Cases -↵
↵
Input↵
↵
2↵
↵
4↵
↵
1 2 3 4↵
↵
6↵
↵
1 2 3 4 5 6↵
↵
Output↵
↵
2↵
↵
3↵
↵
Explanation -↵
Testcase 2: A = {1, 2, 3, 4, 5, 6}. Rotate the array clockwise i.e. after rotation the array A = {6, 1, 2, 3, 4, 5} and delete the last element that is {5} so A = {6, 1, 2, 3, 4}. Again rotate the array for the second time and deletes the second last element that is {2} so A = {4, 6, 1, 3}, doing these steps when he reaches 4th time, 4th last element does not exists so he deletes 1st element ie {1} so A={3, 6}. So continuing this procedure the last element in A is {3}, so outputp will be 3.↵
↵
Can someone please help me understand the solution.↵
Primarily I need help in the following block:↵
↵
if(n==1) cout<<arr[0]<<endl;↵
else if(n%2) {↵
ll ind = n-3;↵
ind = floor(ind/4);↵
ind = 3+ind;↵
cout<<arr[ind-1]<<endl;↵
} else {↵
ll ind = n-2;↵
ind = floor(ind/4);↵
ind = 2+ind;↵
cout<<arr[ind-1]<<endl;↵
}↵
↵
[1]: https://practice.geeksforgeeks.org/problems/rotate-and-delete/0↵
[2]: https://ide.geeksforgeeks.org/pkbUpmrCFi