luogu#P5483. [JLOI2011] 小A的烦恼

[JLOI2011] 小A的烦恼

题目描述

AABB公司的一名PM(productmarket)PM(product market)BB公司越来越注重产品使用情况分析,而小AA的工作就是整天对着一堆数据分析来分析去,没完没了。其中有一个操作是小AA很头疼的,就是要把多个csvcsv文件的数据拷到同一个excelexcel文件中去。 有一天小AA满怀期待地找到了你,一个高级程序员,她想让你写程序帮她完成这个简单重复性工作。这不是坑爹吗,直接操作excelexcel还要用到第三方的库,还不如直接写到csvcsv文件中,让她再手动去转成excelexcel文件。经过内部沟通协调,最终定下了这个方案。 csvcsv是一种excelexcel可支持和格式,且存储方式非常简单。它实际上就是用“,”来分隔相邻的两个列。比如以下三行数据:

a,a,a
b,,b
,c,c

表示的就是:

a
b b
c

现在小AA想做的就是把各个文件按照从左往右的顺序拷到同一个文件当中。比如文件aa的数据是:

a1,b1,c1
a2,b2

文件bb的数据是:

a1,b1,c1,d1
a2,b2
a3,b3,c3
a4

那么她所希望的最终结果是:

a b
a1 b1 c1 a1 b1 c1 d1
a2 b2 a2 b2
a3 b3 c3
a4

这个结果在csvcsv文件里就是:

a,,,b,,,
a1,b1,c1,a1,b1,c1,d1
a2,b2,,a2,b2,,
,,,a3,b3,c3,
,,,a4,,,

以上结果的第一行是每一个文件的文件名,文件名与相应文件的第一列对齐。如果相应文件不止一列,那么其它列用空的单元格来补充。
输入的csvcsv文件里保证了每一行的末尾都没有“,”,也就是说像aa文件的第22行的第33列一样,如那一格是空的,那么在b2b2后面是没有“,”的。
输出的csvcsv文件里因为是程序的输出结果,为了简化程序,如果末尾是空的,那么还是会显式输出“,”,如以上的结果所示。
输入文件保证至少有一行一列非空。
输出的文件要保证下一个文件的第一列要紧邻着上一文件的最后一个非空列的右面。最后一个文件只输出到最后一个非空列。

输入格式

第一行有一个整数NN1N1001\leq N\leq 100),表示有NN个文件。
以下NN个数据块的第一行有一个整数MM (1M1001\leq M\leq 100)和一个字符串SS (1length(S)1001\leq length(S)\leq 100),M表示文件的行数,SS表示文件名。
NN个数据块的下面MM行中,每一行是一个字符串TT(1length(T)1001\leq length(T)\leq 100),TT只包含小写字母、数字和“,”。

输出格式

输出把NN个文件的数据合到一个文件的结果。

2
2 a
a1,b1,c1
a2,b2
4 b
a1,b1,c1,d1
a2,b2
a3,b3,c3
a4
a,,,b,,,
a1,b1,c1,a1,b1,c1,d1
a2,b2,,a2,b2,,
,,,a3,b3,c3,
,,,a4,,,