该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
徐老师最近刚刚学习了逆序对的知识
逆序对:在一个序列中,满足 i<j 且 ai>aj,这一对 (i,j) 就被称为逆序对
现在徐老师有一堆只包含 0,1 的字符串,他希望把这些字符串头尾拼接成一个大字符串
并且希望这个新的大字符串中的逆序对数量最少
徐老师想知道这个大字符串的逆序对最少有多少对?
并且请你告诉徐老师最终的大字符串是什么,如果存在多组不同的方案,请输出字典序最小的那一组
输入格式
输入一个整数 n 表示有 n 个小字符串
接下来 n 行每行一个字符串,保证字符串仅由 0 和 1 组成
输出格式
输出第一行一个整数表示最少的逆序对个数
输出第二行包含一个字符串,表示拼接完后的新字符串,如果存在相同方案,则输出字典序最小的
数据范围
设 M 为所有字符串长度之和。
| 测试点编号 |
数据约束 |
| 1−2 |
1≤n≤8,1≤M≤20 |
| 3−4 |
1≤n≤18,1≤M≤30 |
| 5−8 |
1≤n≤18,1≤M≤105 |
| 9 |
1≤n=M≤2×105 |
| 10−11 |
n=1,1≤M≤2×105 |
| 12−15 |
n≤1000,1≤M≤105 |
| 16−20 |
1≤n≤2×105,1≤M≤2×105 |
输入样例1
3
1
11
101
输出样例1
1
101111
输入样例2
3
1010
111
101
输出样例2
6
1010101111