poj2091-Zing Zhu's Oyster Farm

Zing Zhu's Oyster Farm
Time Limit: 3000MS Memory Limit: 30000K
Total Submissions: 270 Accepted: 71

Description

Zing Zhu owns an island that is a piece of flat land. Everyday, when the tide rises, the island is flooded by sea water. After much thinking and asking advice from members of his family, Zing Zhu decided to set up an oyster farm in the island. Zing Zhu uses a sophisticated system of plastic watertight modular fences to control the areas that will be flooded and the areas that will not be flooded during the rise of the tide. The fences used by Zing Zhu are either horizontal or vertical and come in strips that have different lengths and heights. Two fences can intersect in at most one point, not necessarily in their ends. 
You have been contacted by Zing Zhu to calculate, given the height the tide will reach and the position and height of all fence strips, the total area of land which will not be flooded during the high tide. You may assume that the widths of fence strips are so thin compared to the size 

of the land that, for the purpose of calculating the total area, fence strips may be considered as having widths equal to zero.

Input

The input contains several test cases. The first line of a test case contains an integer N indicating the number of fence strips in the island (1 <= N <= 2000). Each of the next N lines contains five integers X1, Y1,X2, Y2 and H, representing respectively the start point of the strip (X1, Y1), the end point of the strip (X2, Y2) and the strip height (H). The last line of a test case contains an integer W representing the tide height. Coordinates are given in meters, heights in centimeters. Furthermore, X1 = X2 or Y1 = Y2 (but not both); -500 <= X1, Y1,X2, Y2 <= 500; and 1 <= W,H <= 1000. The end of input is indicated by N = 0.

Output

For each test case in the input your program must produce one line of output, containing one integer representing the total area (in m 2) of the land which will not be flooded.

Sample Input

4
-20 20 20 20 200
20 20 20 -20 200
0 0 0 20 100
-10 0 20 0 200
100
4
-20 20 20 20 200
20 20 20 -20 200
0 0 0 20 100
-10 0 20 0 200
101
0

Sample Output

400
0
 
题目大意:给你一些栅栏,然后给你每个栅栏的高度,栅栏能构成空间,然后外面有水,水的高度给你,低于水的高度将会不安全,询问你最后能保持安全的面积为多少。
 
解题思路:我们可以通过扫描线从下往上搜索,然后只搜索高度高于水高度的栅栏,因为低于水高度的栅栏都会被水淹没,然后我们扫描求得安全面积。

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值