#P6265. [COCI2014-2015#3] SILUETA

[COCI2014-2015#3] SILUETA

题目背景

画家文森特有一次发现自己身处一个摩天大楼林立的大都市,于是他立刻下来画画,陶醉于这一美妙的景象。由于一些普通程序员无法理解的原因,文森特决定只画眼前摩天大楼的轮廓。不幸的是,在他完成这幅杰作一周后,这幅画被烧了。

为了重建这幅画,文森特向各个方向寻求帮助,现在轮到你了!

题目描述

从你的角度来看,文森特的摩天大楼是长方形的,它的边平行于坐标轴,一边位于横坐标上。图片的横坐标应该用字符 * 表示,摩天大楼的轮廓用 # 表示,其余部分用 . 表示。图像的左边缘必须以摩天大楼开始,而图像的右边缘必须以摩天大楼结束。此外,为了验证数学家得到的结果,输出给定轮廓的周长,而不是计算横坐标上的边。

输入格式

第一行输入包含一个整数 nn,即摩天大楼的数量。

以下 nn 行中的每一行都包含三个整数 li,ril_i,r_ihih_i,分别表示第 ii 座摩天大楼的位置。在笛卡尔坐标系中,这座摩天大楼被认为是一个矩形,左下角在 (li,0)(l_i,0) 中,右上角在 (ri,hi)(r_i,h_i) 中。

输出格式

第一行输出一个整数,表示摩天大楼轮廓的周长。

接下来的 h+1h+1 行,其中 h+1h+1 是最高摩天大楼的高度,必须包含题目描述中描述的文森特的绘图。

3
1 5 4
7 11 3
9 13 5

28
........####
####....#..#
#..#..###..#
#..#..#....#
#..#..#....#
************

6
2 8 7
5 13 5
2 18 3
23 26 5
20 31 7
21 30 10
61
...................#########.
...................#.......#.
...................#.......#.
######............##.......##
#....#............#.........#
#....######.......#.........#
#.........#.......#.........#
#.........######..#.........#
#..............#..#.........#
#..............#..#.........#
*****************************

提示

样例输入输出 1 解释

如下图,蓝色表示摩天大楼的轮廓(字符 #),而黄色是文森特绘画中横坐标的一部分(字符 *)。

数据规模与约定

  • 对于 50%50\% 的数据,保证 1n1001\le n\le 1001li,ri,hi1001\le l_i,r_i,h_i\le 100
  • 对于 100%100\% 的数据,保证 1n1041\le n\le 10^41li,ri,hi1031\le l_i,r_i,h_i\le 10^33rili1033 \leq r_i - l_i \leq 10^3