poj2091-Zing Zhu's Oyster Farm

来源:互联网 发布:java 100以内的质数 编辑:程序博客网 时间:2024/06/05 19:10
Zing Zhu's Oyster Farm
Time Limit: 3000MS Memory Limit: 30000KTotal 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 m2) of the land which will not be flooded.

Sample Input

4-20 20 20 20 20020 20 20 -20 2000 0 0 20 100-10 0 20 0 2001004-20 20 20 20 20020 20 20 -20 2000 0 0 20 100-10 0 20 0 2001010

Sample Output

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