3832: 不重复的全排列

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:14 解决:8

题目描述

给定一个可包含重复数字的整数序列 A ,请按照字典序从小到大的顺序,输出该序列所有不重复的全排列。
所谓“全排列”,是指将序列中的所有数字重新排列形成的新序列。如果两个排列在任意位置上的数字不完全相同,则视为不同的排列;若两个排列完全一致,则视为重复,只输出一次。
例如,序列 [1,1,2] 的全排列有:
  • [1,1,2]
  • [1,2,1]
  • [2,1,1]
    注意:虽然有两个 1 ,但交换这两个 1 的位置产生的排列被视为同一种,因此不重复输出。

输入

输入共两行:
  • 第一行包含一个整数 n (1n8 ),表示序列中数字的个数。
  • 第二行包含 n 个整数 A1,A2,,An ( 10Ai10 ),表示给定的序列。

输出

输出若干行,每行包含 n 个整数,表示一个不重复的全排列。
  • 所有排列必须按照字典序从小到大输出。
  • 同一行内的两个整数之间用一个空格隔开,行末不得有多余空格。

样例输入 复制

3
1 1 2

样例输出 复制

1 1 2
1 2 1
2 1 1