数据结构与算法专题题库

1009. 数据整理

单点时限: 2.0 sec

内存限制: 512 MB

假设你现在利用爬虫技术爬到了中国所有的水果店的数据,我们假设数据长这样:

3 shanghai yangpu apple 4

那么我们肯定希望将这些数据好好整理,在整(tong)理(guo)数(ti)据(mu)的时候你需要注意以下问题:

  • 我们发数据表示成三个部分$ k_i$ $a_{i1}$ $a_{i2}$ $…$ $a_{ik}$ $item_i$ $price_i $,其中$k_i$反应了通过多少层的索引可以找到这个item,$a_{ij}$表示第$i$个商品的第$j$层索引信息,$item_i$表示这个商品的名称,$price_i$表示这个商品的价格。
  • 如果两个商品的某个索引相同,例如$a_{ij}=a_{pq}$,则要么$j=1$和$q=1$同时成立,要么$j>1$,$q>1$和$a_{i(j-1)}=a_{p(q-1)}$同时成立。(也就是不会存在a xb x同时存在的现象,也可以理解为不可以存在两个不同的城市里有两个相同名字的区)。
  • 不同商品的$item_i$ $price_i$唯一确定,但可以存在两个商品的item一样(也可以理解为不同的店可以买同一样东西,但是价格一定不一样)。
  • 请大家注意输出格式中的细节,如果提交之后返回Wrong Answer on Test 1,请一定检查输出格式。
  • 输出时候按照类似于字典的顺序输出(想想字典是怎么索引的,只是这道题目是一个多级索引)

输入格式

第一行一个整数$n$。

接下来$n$行每行一条商品信息。

数据满足:$ k_i \leq 1000 $ 。

注意:

  • $item_i$中可能存在数字。
  • $price_i$为非负整数。
  • 输入规模小于$10^6$。

输出格式

整理后的数据(详见样例)。

样例

Input
7
3 shanghai yangpu apple 4
3 shanghai huangpu apple 5
3 shanghai yangpu banana 3
2 shanghai orange 4
3 hubei wuhan apple 7
3 hubei wuhan banana 6
2 anhui apple 3
Output
anhui
|___apple(3)
hubei
|___wuhan
####|___apple(7)
####|___banana(6)
shanghai
|___huangpu
####|___apple(5)
|___orange(4)
|___yangpu
####|___apple(4)
####|___banana(3)

提示

使用STL的map和set建立一棵类似字典树的数据结构。
用sort做就没意思了!

不限期开放

题目列表