Given an array of n integers and a number, d, perform  left rotations on the array. Then print the updated array as a single line of space-separated integers.
Sample Input:
5 4
1 2 3 4 5
The first line contains two space-separated integers denoting the respective values of n (the number of integers) and d (the number of left rotations you must perform). 
The second line contains n space-separated integers describing the respective elements of the array's initial state.
Sample Output:
5 1 2 3 4
static void Main(String[] args)
{
    string[] arr_temp = Console.ReadLine().Split(' ');
    int n = Int32.Parse(arr_temp[0]);
    int d = Int32.Parse(arr_temp[1]);
    string[] arr = Console.ReadLine().Split(' ');
    string[] ans = new string[n];
    for (int i = 0; i < n; ++i)
    {
        ans[(i + n - d) % n] = arr[i];
    }
    for (int j = 0; j < n; ++j)
    {
        Console.Write(ans[j] + " ");
    }
}
How to use less memory to solve this problem?