QOJ.ac

QOJ

実行時間制限: 0.2 s メモリ制限: 32 MB 満点: 100

#16370. 轮廓

統計

本题的主角——画家文森特(Vincent)年轻时花了大量时间周游世界。无数旅途中的风景常常成为他如今备受赞誉的艺术作品的灵感来源。有一次,文森特置身于一个高楼林立的大都市中,他立刻被这壮丽的景色所陶醉,并着手开始创作。出于一些普通程序员无法理解的原因,文森特决定只画他眼前看到的摩天大楼的轮廓(silhouette)。不幸的是,在他完成这幅杰作一周后,画作自燃了。

为了重建这幅画,文森特向各方寻求帮助:建筑师为他提供了摩天大楼的精确尺寸,物理学家忽略了空气阻力,数学家将一切映射到了一个平面上,现在轮到你了!

在你的视角中,文森特的摩天大楼是边与坐标轴平行且有一条边位于横轴(abscissa)上的矩形。画面中横轴的部分应该用字符 * 表示,摩天大楼的轮廓用 # 表示,画面的其余部分用 . 填充。画面的左边界必须从最左边的摩天大楼开始,而右边界必须到最右边的摩天大楼结束。此外,为了验证数学家得到的结果,请输出给定轮廓的周长,不计算位于横轴上的边

输入格式

输入的第一行包含一个整数 $N$($1 \le N \le 10\,000$),表示摩天大楼的数量。

接下来的 $N$ 行,每行包含三个整数 $L_i, R_i$ 和 $H_i$($1 \le L_i, R_i, H_i \le 1\,000$,$3 \le R_i - L_i \le 1\,000$),描述第 $i$ 个摩天大楼的位置。在直角坐标系中,该摩天大楼被视为一个左下角为 $(L_i, 0)$、右上角为 $(R_i, H_i)$ 的矩形。

输出格式

输出的第一行必须包含文森特轮廓的周长(不计底边)。

接下来的 $h+1$ 行(其中 $h$ 是最高摩天大楼的高度)必须包含如题目描述中所述的文森特的画作。

子任务

在占总分 50% 的测试数据中,满足 $1 \le N \le 100$ 且 $1 \le L_i, R_i, H_i \le 100$。

如果程序输出的周长正确但图像错误,将获得该测试点 40% 的分数。

如果程序输出的周长错误但图像正确,将获得该测试点 60% 的分数。

如果你只能画出图像但无法计算周长,请在第一行输出任意一个整数,然后输出图像。

样例

输入样例 1

3
1 5 4
7 11 3
9 13 5

输出样例 1

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

输入样例 2

6
2 8 7
5 13 5
2 18 3
23 26 5
20 31 7
21 30 10

输出样例 2

61
...................#########.
...................#.......#.
...................#.......#.
######............##.......##
#....#............#.........#
#....######.......#.........#
#.........#.......#.........#
#.........######..#.........#
#..............#..#.........#
#..............#..#.........#
*****************************

说明

样例 1 说明: 蓝色表示摩天大楼的轮廓(字符 #),黄色表示位于文森特画作中的横轴部分(字符 *)。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.