import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int N = in.nextInt();
int M = in.nextInt();
int[] a = new int[N];
for (int i = 0; i < a.length; i++)
a[i] = i + 1;
for (int i = 1; i < M; i++)
nextPermutation(a);
System.out.print(a[0]);
for (int i = 1; i < a.length; i++)
System.out.print(" " + a[i]);
System.out.println();
}
}
public static void nextPermutation(int[] a) {
int llr = 0;
for (int i = a.length - 1; i > 0; i--)
if (a[i - 1] < a[i]) {
llr = i - 1;
break;
}
int min = llr + 1;
for (int i = llr + 1; i < a.length; i++)
if (a[i] > a[llr] && a[i] < a[min])
min = i;
swap(llr, min, a);
reserve(llr + 1, a);
}
public static void swap(int i, int j, int[] a) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
public static void reserve(int i, int[] a) {
for (int j = i, k = 0; j < (i + a.length) / 2; j++, k++)
swap(j, a.length - 1 - k, a);
}
}
Java hdoj 1027 Ignatius and the Princess II
最新推荐文章于 2020-03-18 17:29:21 发布