题目大意:

有一个画家,画了n栋摩天大楼。(实际上只有远远望去的轮廓)。每栋楼都是一个矩形,有些矩形是重叠在一起的。所有的矩形的底边都在一条直线上。很不幸,画被烧毁了。但是记得每个矩形的位置和高度,现在请你复原这幅画,并求出矩形的轮廓线的周长(不包含底边)。

输入:

第一行:给出一个整数n表示有n栋大楼。(n<10000)
接下来有n行,每行三个整数Li,Ri,Hi。表示第i栋楼的左下角坐标为(Li,0),右上角坐标为(Ri,Hi)。(1<=Li,Ri,Hi<=1000,3<=Ri-Li<=1000)

输出:

第一行为一个整数,表示摩天大楼的周长。
接下来h+1行,为复原的地图。
其中h表示最高的那栋楼的高度。

样例输入:

3
1 5 4
7 11 3
9 13 5

样例输出:

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

解释:

分析:

保存每一个横坐标最大的高度,乱搞输出。

code:

#include<cstdio>
#define MAXN 10000
#define MAXL 1000
using namespace std;
inline int max(int a,int b){return a>b?a:b;}
inline int min(int a,int b){return a<b?a:b;}
int n,ans,R,H,lim;
int hei[MAXL+1];
char map[MAXL+5][MAXL+5];
int main()
{int i,j,l,r,h;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d%d%d",&l,&r,&h);R=max(R,r);H=max(H,h);for(j=l;j<r;j++)hei[j]=max(hei[j],h);}for(i=1;i<R;i++)for(j=1;j<=H;j++)map[i][j]='.';for(i=1;i<R;i++){if(hei[i]>0){map[i][hei[i]]='#',++ans;if(hei[i-1]==0||hei[i+1]==0)++ans;}if(hei[i]>=hei[i-1]||hei[i]>=hei[i+1]){for(j=hei[i]-1;j>=min(max(hei[i-1],1),max(hei[i+1],1));j--)map[i][j]='#',++ans;}}printf("%d\n",ans);while(!hei[lim])++lim;for(j=H;j>=1;j--){for(i=lim;i<R;i++)printf("%c",map[i][j]);printf("\n");}for(i=lim;i<R;i++)printf("*");
}

COCI2014silueta相关推荐

最新文章

  1. 移位运算[c][code]
  2. Configuring the Java Virtual Manager (JVM)
  3. 如何下载图片新闻并将其写入文件
  4. 大话架构”阿里架构师的笔记——多研究些架构,少谈些框架
  5. Tensorflow实现自动编码器
  6. Ubuntu下搭建NFS,并在开发板挂载
  7. JavaScript实现graphBridges图桥算法(附完整源码)
  8. gEdit: 打造简洁,小巧的编程环境
  9. cf1556Compressed Bracket Sequence
  10. linux 进程与锁,linux 中的进程与锁
  11. 计算机一级电子表格插入表格,计算机一级电子表格
  12. python读取超大文件-强悍的Python读取大文件的解决方案
  13. 封装系统驱动放哪里啊_MPS做一体化电机驱动方案有三大绝招
  14. python教材答案第四章_第四章-习题答案
  15. 可编程逻辑控制器类毕业论文文献都有哪些?
  16. 未来教育题库 * **java二级第28套试题** *
  17. 两台计算机能否共用一个ip地址,多台电脑共用一个WIFI,IP地址是不是一样?
  18. ADGUARD——去除广告利器
  19. T6客户档案-供应商-存货名称不能录入空格--sql 怎么去掉最后一个字符
  20. 使用UltraISO刻录DMG光盘映像

热门文章

  1. 使用axFramerControl,打开Excel文件(后缀为.xlsx)的时候一直出错。提示调用目标发生异常
  2. 多元微积分_向量场内的线积分
  3. 网赚人必经的60件事,你中了几条?
  4. OCR文本检测算法-CTPN模型
  5. GaryLeetCode学习笔记·贰(第十一周)
  6. linux64 汇编 signal,signal问题,SIGTERM被忽略?
  7. ACM练级日志:set
  8. window10系统英伟达NVIDIA显卡驱动和CUDA软件的安装和升级
  9. python操控微信 wxpy教程
  10. 15 | 边界:微服务的各种边界在架构演进中的作用