Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int chkArray(int *arr, int n)
- {
- for (int a = 0; a < n; a++)
- {
- if (arr[a] != a + 1)
- {
- return 0;
- }
- }
- return 1;
- }
- void reverseSubarray(int arr[], int low, int high)
- {
- int tmp[101];
- int idx = 0;
- for (int a = low; a <= high; a++)
- {
- tmp[idx] = arr[a];
- idx++;
- }
- idx = 0;
- for (int a = high; a >= low; a--)
- {
- arr[a] = tmp[idx];
- idx++;
- }
- }
- int arr[101];
- int main(void)
- {
- int N, K;
- int a1, a2, b1, b2;
- FILE *f = fopen("swap.in", "r");
- fscanf(f, "%d %d\n%d %d\n%d %d", &N, &K, &a1, &a2, &b1, &b2);
- fclose(f);
- for (int i=0;i<N;i++)
- {
- arr[i] = i+1;
- }
- int iter = 0;
- do
- {
- reverseSubarray(arr, a1-1, a2-1);
- reverseSubarray(arr, b1-1, b2-1);
- iter++;
- } while(!chkArray(arr, N));
- int idx = (K % iter);
- for (int i=0;i<N;i++)
- {
- arr[i] = i+1;
- }
- for (int a=0;a<idx;a++)
- {
- reverseSubarray(arr, a1-1, a2-1);
- reverseSubarray(arr, b1-1, b2-1);
- }
- f = fopen("swap.out", "w");
- for(int a=0;a<N;a++)
- {
- fprintf(f, "%d\n", arr[a]);
- }
- fclose(f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement