Advertisement
Guest User

Prob,1

a guest
Feb 25th, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 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("data.in"));
  8. PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("data.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. }
  32. initial = next;
  33. }
  34.  
  35. int[] solution = new int[N];
  36. boolean[] visited = new boolean[N];
  37. for (int i = 0; i < N; i++) {
  38. if (visited[i])
  39. continue;
  40. visited[i] = true;
  41. int start = i;
  42. int pos = initial[i];
  43. ArrayList<Integer> set = new ArrayList<Integer>();
  44. set.add(i);
  45. while (pos != start) {
  46. set.add(pos);
  47. visited[pos] = true;
  48. pos = initial[pos];
  49. }
  50. int shift = M % set.size();
  51. for (int j = 0; j < set.size(); j++) {
  52. solution[set.get((j + shift) % set.size())] = set.get(j);
  53. }
  54. }
  55.  
  56. for (int i = 0; i < solution.length; i++) {
  57. out.println(solution[i] + 1);
  58. }
  59. out.close();
  60. }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement