Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- class swapity {
- public static void main(String[] args) throws IOException {
- BufferedReader f = new BufferedReader(new FileReader("data.in"));
- PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("data.out")));
- StringTokenizer st = new StringTokenizer(f.readLine());
- int N = Integer.parseInt(st.nextToken());
- int M = Integer.parseInt(st.nextToken());
- int K = Integer.parseInt(st.nextToken());
- int[] initial = new int[N];
- for (int i = 0; i < N; i++) {
- initial[i] = i;
- }
- for (int i = 0; i < M; i++) {
- st = new StringTokenizer(f.readLine());
- int a = Integer.parseInt(st.nextToken()) - 1;
- int b = Integer.parseInt(st.nextToken()) - 1;
- int[] next = new int[N];
- for (int j = 0; j < N; j++) {
- if (j < a || j > b) {
- next[j] = initial[j];
- } else {
- next[b - (j - a)] = initial[j];
- }
- }
- initial = next;
- }
- int[] solution = new int[N];
- boolean[] visited = new boolean[N];
- for (int i = 0; i < N; i++) {
- if (visited[i])
- continue;
- visited[i] = true;
- int start = i;
- int pos = initial[i];
- ArrayList<Integer> set = new ArrayList<Integer>();
- set.add(i);
- while (pos != start) {
- set.add(pos);
- visited[pos] = true;
- pos = initial[pos];
- }
- int shift = M % set.size();
- for (int j = 0; j < set.size(); j++) {
- solution[set.get((j + shift) % set.size())] = set.get(j);
- }
- }
- for (int i = 0; i < solution.length; i++) {
- out.println(solution[i] + 1);
- }
- out.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement