Left Rotation | HackerRank


left rotation operation on an array of size shifts each of the array's elements unit to the left. For example, if left rotations are performed on the array, then the array would become.
Given an array of integers and a number, perform left rotations on the array. Then print the updated array as a single line of space-separated integers.
Input Format
The first line contains two space-separated integers denoting the respective values of  (the number of integers) and  (the number of left rotations you must perform).
The second line contains space-separated integers describing the respective elements of the array's initial state.
Output Format
Print a single line of space-separated integers denoting the final state of the array after performing left rotations.
Sample Input
5 4
1 2 3 4 5
Sample Output
5 1 2 3 4
Explanation
When we perform  left rotations, the array undergoes the following sequence of changes:
Thus, we print the array's final state as a single line of space-separated values, which is 5 1 2 3 4.

Solution (C++ 14)

#include<bits/stdc++.h>
using namespace std;

int main()
{
  int n,d;
  cin >>n>>d;
  int arr[n];
  vector<int>vec;
  if(d>n)
     {
       d=d%n;
     }
  for(int i=0;i<n;i++)
  {
    int x;
    cin>>x;
    vec.push_back(x);
  }
  
  for(int i=0;i<n;i++)
  {
     arr[i]=vec.at((i+d)%n);
  }
  for(int i=0;i<n;i++)
  cout<<arr[i]<<" ";
  return 0;
}

Comments