码迷,mamicode.com
首页 > 其他好文 > 详细

uva 105 - The Skyline Problem

时间:2016-01-09 18:22:40      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

一、用数组储存该位置的最高点即可(图形的连续点离散化),注意左边界及右边界的情况;

注意:无论建筑物最左边是盖到哪里,你都得从1开始输出(输入输出都是integer,所以才能离散化);

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int skyline[10005] = {0};
 8     int L, H, R;
 9     int rightest = 0;
10     bool space = false;
11 
12     while( scanf("%d%d%d", &L, &H, &R) != EOF )    // initial
13     {
14         for(int i = L; i < R; i++)
15             if(H > skyline[i])    skyline[i] = H;
16         if(R > rightest)    rightest = R;
17     }
18 
19     for(int i = 1; i <= rightest; i++)    // "i=rightest" is in order to print "i 0",
20         if(skyline[i-1] != skyline[i])    // the last number.
21         {
22             if(space)    printf(" ");
23             space = true;
24             printf("%d %d", i, skyline[i]);
25         }
26         printf("\n");
27 
28     return 0;
29 }

 

uva 105 - The Skyline Problem

标签:

原文地址:http://www.cnblogs.com/aze-003/p/5116758.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!