#includeusing namespace std;const int N = 110;bool isUse[N];int n, t;int a[N], b[N];bool isSmall() {\tfor (int i = 1; i <= n; i)\t\tif (a[i] != b[i]) return a[i] < b[i];\treturn false;}bool getPermutation(int pos) {\tif (pos > n) {\t\treturn isSmall();\t}\tfor (int i = 1; i <= n; i) {\t\tif (!isUse[i]) {\t\t\tb[pos] = i; isUse[i] = true;\t\t\tif (getPermutation(pos 1)) {\t\t\t\treturn true;\t\t\t}\t\t\tisUse[i] = false;\t\t}\t}\treturn false;}void getNext() {\tfor (int i = 1; i <= n; i) {\t\tisUse[i] = false;\t}\tgetPermutation(1);\tfor (int i = 1; i <= n; i) {\t\ta[i] = b[i];\t}}int main() {\tscanf("%d%d", &n, &t);\tfor (int i = 1; i <= n; i) {\t\tscanf("%d", &a[i]);\t}\tfor (int i = 1; i <= t; i) {\t\tgetNext();\t}\tfor (int i = 1; i <= n; i) {\t\tprintf("%d", a[i]);\t\tif (i == n) putchar('\'); else putchar(' ');\t}\treturn 0;}
输入 1:6 10 1 6 4 5 3 2
输出 1:_________(3 分)
输入 2:6 200 1 5 3 4 2 6
输出 2:_________(5 分)
发表评论 取消回复