Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector<int> ori, cur;
- vector<pair<int, int>> ord;
- int N, M, K;
- bool isDiag = false;
- vector<int> apply(vector<int> v){
- for (int i = 0; i < M; i++)
- {
- reverse(begin(v)+ord[i].first-1, begin(v)+ord[i].second);
- }
- return v;
- }
- int main(){
- freopen("swap.in", "r", stdin);
- cin >> N >> M >> K;
- for (int i = 1; i <= N; i++)
- {
- ori.push_back(i);
- }
- for (int i = 0; i < M; i++)
- {
- int L, R;
- cin >> L >> R;
- ord.push_back({L, R});
- }
- cur = ori;
- int period = 0;
- do
- {
- period ++ ;
- cur = apply(cur);
- } while (cur != ori);
- int k = K%period;
- while (k--)
- {
- cur = apply(cur);
- }
- freopen("swap.out", "w", stdout);
- for (int i = 0; i < N; i++)
- {
- cout << cur[i] << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement