Advertisement
Guest User

Prob.1

a guest
Feb 25th, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4. class swapity {
  5. public static void main(String[] args) throws IOException {
  6.  
  7. BufferedReader f = new BufferedReader(new FileReader("swap.in"));
  8. PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("swap.out")));
  9.  
  10. StringTokenizer st = new StringTokenizer(f.readLine());
  11. int N = Integer.parseInt(st.nextToken());
  12. int M = Integer.parseInt(st.nextToken());
  13. int K = Integer.parseInt(st.nextToken());
  14.  
  15. int[] initial = new int[N];
  16. for (int i = 0; i < N; i++) {
  17. initial[i] = i;
  18. }
  19.  
  20. for (int i = 0; i < M; i++) {
  21. st = new StringTokenizer(f.readLine());
  22. int a = Integer.parseInt(st.nextToken()) - 1;
  23. int b = Integer.parseInt(st.nextToken()) - 1;
  24. int[] next = new int[N];
  25. for (int j = 0; j < N; j++) {
  26. if (j < a || j > b)
  27. next[j] = initial[j];
  28. else
  29. next[b - (j - a)] = initial[j];
  30. }
  31. initial = next;
  32. }
  33.  
  34. int[] solution = new int[N];
  35. boolean[] visited = new boolean[N];
  36. for (int i = 0; i < N; i++) {
  37. if (visited[i])
  38. continue;
  39. visited[i] = true;
  40. int start = i;
  41. int pos = initial[i];
  42. ArrayList<Integer> set = new ArrayList<Integer>();
  43. set.add(i);
  44. while (pos != start) {
  45. set.add(pos);
  46. visited[pos] = true;
  47. pos = initial[pos];
  48. }
  49. int shift = K % set.size();
  50. for (int j = 0; j < set.size(); j++)
  51. solution[set.get(j)] = set.get((j + shift) % set.size());
  52. }
  53.  
  54. for (int i = 0; i < N; i++) {
  55. out.println(solution[i] + 1);
  56. }
  57. out.close();
  58. }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement