Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int a[100001];
- bool visited[100001];
- int main(){
- freopen("swap.in", "r", stdin);
- int n, m, k;
- cin >> n >> m >> k;
- for (int i = 1; i <= n; i++)
- {
- a[i] = i;
- }
- for (int i = 0; i < m; i++)
- {
- int l, r;
- cin >> l >> r;
- for (int j = 0; j < (r-l+1)/2; j++)
- {
- int temp = a[l+j];
- a[l+j] = a[r-j];
- a[r-j] = temp;
- }
- }
- for (int i = 1; i <= n; i++)
- {
- if (!visited[i])
- {
- visited[i] = true;
- int start = a[i];
- vector<int> cycle;
- cycle.push_back(i);
- while (start != i)
- {
- visited[start] = true;
- cycle.push_back(start);
- start = a[start];
- }
- int mod = k % cycle.size();
- for (int j = 0; j < cycle.size(); j++)
- {
- a[cycle[j]] = cycle[(j + mod) % cycle.size()];
- }
- }
- }
- freopen("swap.out", "w", stdout);
- for (int i = 1; i <= n; i++)
- {
- cout << a[i] << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement