0157. Areas
Input file name: | areas.in |
Output file name: | areas.out |
Time limit: | 2 s |
Memory limit: | 256 megabytes |
Consider N different lines on the plane. They divide it to several parts, some of which are finite, some infinite.
Your task in this problem is for each finite part to find its area.
Input file
The first line of the input file contains N – the number of lines ({1 ≤ N ≤ 80}). Each of next N lines contains four integer numbers x1, y1, x2 and y2 – the coordinates of two different points of the line.
All coordinates do not exceed 102 by their absolute value.
No two lines coincide.
Output file
First output K – the number of finite parts among those the lines divide the plane to.
Next K lines of the output file must contain area parts sorted in non-decreasing order. You answer must be accurate up to 10-4.
Due to floating point precision losses possible, do not consider parts with area not exceeding 10-8.
Examples:
areas.in | areas.out |
---|---|
5 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 | 2 0.5000 0.5000 |
Source: Petrozavodsk Summer 2003. Final Contest, Saturday, August 30
Author: Andrew Stankevich
Discuss Submit a solution