fork download
  1. import java.io.OutputStream;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.OutputStream;
  5. import java.io.PrintWriter;
  6. import java.util.Arrays;
  7. import java.io.BufferedWriter;
  8. import java.io.Writer;
  9. import java.io.OutputStreamWriter;
  10. import java.util.InputMismatchException;
  11. import java.io.IOException;
  12. import java.io.InputStream;
  13.  
  14. /**
  15.  * Built using CHelper plug-in
  16.  * Actual solution is at the top
  17.  *
  18.  * @author PRANJAL AGNIHOTRI
  19.  */
  20. public class Main {
  21. public static void main(String[] args) {
  22. InputStream inputStream = System.in;
  23. OutputStream outputStream = System.out;
  24. InputReader in = new InputReader(inputStream);
  25. OutputWriter out = new OutputWriter(outputStream);
  26. MINPERM solver = new MINPERM();
  27. solver.solve(1, in, out);
  28. out.close();
  29. }
  30.  
  31. static class MINPERM {
  32. public void solve(int testNumber, InputReader in, OutputWriter out) {
  33. int T = in.nextInt();
  34. while (T-- > 0) {
  35. int N = in.nextInt();
  36. long[] array = new long[N];
  37. String s = null;
  38.  
  39. if (N % 2 == 0) {
  40. for (int i = 1; i <= N; i += 2) {
  41. int a = i;
  42. int b = i + 1;
  43. array[i - 1] = b;
  44. array[i] = a;
  45. }
  46.  
  47. } else {
  48. int pos = N / 2 + 1;
  49. for (int i = 1; i <= N; i += 2) {
  50. if (i == pos || i == pos - 1) {
  51. if (i == pos - 1) {
  52. pos = pos - 1;
  53. }
  54. while (i != N) {
  55. array[i - 1] = i + 1;
  56. i = i + 1;
  57. }
  58. array[N - 1] = pos;
  59. } else {
  60. if (i == N) {
  61. array[N - 1] = i - 1;
  62. break;
  63. }
  64. int a = i;
  65. int b = i + 1;
  66. array[i - 1] = b;
  67. array[i] = a;
  68. }
  69. }
  70.  
  71. }
  72. out.println(array);
  73. }
  74. }
  75.  
  76. }
  77.  
  78. static class OutputWriter {
  79. private final PrintWriter writer;
  80.  
  81. public OutputWriter(OutputStream outputStream) {
  82. writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
  83. }
  84.  
  85. public OutputWriter(Writer writer) {
  86. this.writer = new PrintWriter(writer);
  87. }
  88.  
  89. public void print(long[] array) {
  90. for (int i = 0; i < array.length; i++) {
  91. if (i != 0) {
  92. writer.print(' ');
  93. }
  94. writer.print(array[i]);
  95. }
  96. }
  97.  
  98. public void println(long[] array) {
  99. print(array);
  100. writer.println();
  101. }
  102.  
  103. public void close() {
  104. writer.close();
  105. }
  106.  
  107. }
  108.  
  109. static class InputReader {
  110. private InputStream stream;
  111. private byte[] buf = new byte[1024];
  112. private int curChar;
  113. private int numChars;
  114. private InputReader.SpaceCharFilter filter;
  115.  
  116. public InputReader(InputStream stream) {
  117. this.stream = stream;
  118. }
  119.  
  120. public int read() {
  121. if (numChars == -1) {
  122. throw new InputMismatchException();
  123. }
  124. if (curChar >= numChars) {
  125. curChar = 0;
  126. try {
  127. numChars = stream.read(buf);
  128. } catch (IOException e) {
  129. throw new InputMismatchException();
  130. }
  131. if (numChars <= 0) {
  132. return -1;
  133. }
  134. }
  135. return buf[curChar++];
  136. }
  137.  
  138. public int nextInt() {
  139. int c = read();
  140. while (isSpaceChar(c)) {
  141. c = read();
  142. }
  143. int sgn = 1;
  144. if (c == '-') {
  145. sgn = -1;
  146. c = read();
  147. }
  148. int res = 0;
  149. do {
  150. if (c < '0' || c > '9') {
  151. throw new InputMismatchException();
  152. }
  153. res *= 10;
  154. res += c - '0';
  155. c = read();
  156. } while (!isSpaceChar(c));
  157. return res * sgn;
  158. }
  159.  
  160. public boolean isSpaceChar(int c) {
  161. if (filter != null) {
  162. return filter.isSpaceChar(c);
  163. }
  164. return isWhitespace(c);
  165. }
  166.  
  167. public static boolean isWhitespace(int c) {
  168. return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
  169. }
  170.  
  171. public interface SpaceCharFilter {
  172. public boolean isSpaceChar(int ch);
  173.  
  174. }
  175.  
  176. }
  177. }
  178.  
  179.  
Success #stdin #stdout 0.05s 4386816KB
stdin
6
2
3
4
5
6
9
stdout
2 1
2 3 1
2 1 4 3
2 1 4 5 3
2 1 4 3 6 5
2 1 4 3 6 7 8 9 5