Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void print(int array[], int i, int size)
- {
- if (i == size)
- {
- printf("\n");
- return;
- }
- printf("%d ", array[i]);
- print(array, i + 1, size);
- }
- void swap_array(int old[], int new[], int i, int size)
- {
- if (i == size)
- {
- return;
- }
- old[i] = new[i];
- swap_array(old, new, i + 1, size);
- }
- void left(int old[], int new[], int size, int i)
- {
- if (i == 0)
- {
- new[size - 1] = old[0];
- return;
- }
- new[i - 1] = old[i];
- left (old, new, size, i - 1);
- }
- void right(int old[], int new[], int size, int i)
- {
- if (i == size)
- {
- new[size - 1] = old[0];
- return;
- }
- new[i - 1] = old[size - i];
- // print(new, 0, i);
- right(old, new, size, i + 1);
- }
- void loop(char caracter, int quant, int old[], int new[], int size)
- {
- if (quant == 0)
- {
- return;
- }
- if (caracter == 'D')
- {
- right(old, new, size, 1);
- }
- else
- {
- left(old, new, size, size - 1);
- }
- swap_array(old, new, 0, size);
- printf("quant: %d\n", quant);
- printf("old: "); print(old, 0, size);
- printf("new: "); print(new, 0, size);
- loop(caracter, quant - 1, old, new, size);
- }
- void command(int old[], int new[], int size)
- {
- char caracter;
- int quant;
- scanf(" %c %d", &caracter, &quant);
- if (caracter == 'S')
- {
- return;
- }
- printf("%c %d\n", caracter, quant);
- loop(caracter, quant, old, new, size);
- print(new, 0, size);
- command(old, new, size);
- }
- void read(int old[], int i, int num) // ler
- {
- if (i < num)
- {
- scanf("%d", &old[i]);
- read(old, i + 1, num);
- }
- }
- int main()
- {
- int num;
- scanf("%d", &num);
- int old[num];
- int new[num];
- read(old, 0, num);
- print(old, 0, num);
- command(old, new, num);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement