Rotiraj za $k$

Za dati niz dužine $n$ i vrednost $k$ ($k \lt n$) napisati funkciju koja rotira niz za $k$ mesta u desno.

Ulaz

Sa standardnog ulaza se unosi $n$ ($1 \leq n \leq 1000$) i $k$ ($1 \leq k \lt n$), a zatim i $n$ elemenata niza iz opsega od $-1000$ do $1000$.

Izlaz

Na standardni izlaz ispisati rotirani niz za $k$ mesta u desno.

Primer

Ulaz

5 3
1 2 3 4 5

Izlaz

3 4 5 1 2

Rešenje

main.c

#include <stdio.h>

#define MAX_SIZE 1000

void rotate_array(int arr[], int n, int k)
{
	int temp[MAX_SIZE];

	for (int i = 0; i < n; i++)
	{
		temp[(i + k) % n] = arr[i];
	}

	for (int i = 0; i < n; i++)
	{
		arr[i] = temp[i];
	}
}

int main(void)
{
	int n, k;

	int arr[MAX_SIZE];

	scanf("%d %d", &n, &k);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}

	rotate_array(arr, n, k);
	
	for (int i = 0; i < n; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");

	return 0;
}