PROG0324 - Square
Four points in a plane form a square if the four sides are of an equal length and if the diagonals are equal.
The following points each form a square:
(0,0), (0,1), (1,1),
(1,0)
(0,0), (1,1), (0,1), (1,0)
(0,0), (2,1), (3,-1), (1, -2)
Pay attention to the fact that the points can be entered in a random order and that the sides of a square aren't necessarily parallel to $X$ and $Y$ axis. The points below do not form a square. They respectively form a rectangle, a rhombus and a degenerated case.
(0,0), (0,2), (3,2),
(3,0)
(0,0), (3,4), (8,4), (5,0)
(0,0), (0,0), (1,1), (0,0)
Input
The input consists of eight real numbers, each on a separate line. These numbers are respectively the $x$ and $y$ co-ordinate of point $a$, the $x$ and $y$ co-ordinate of point $b$, the $x$ and $y$ co-ordinate of point $c$ and $x$ and $y$ co-ordinate of point $d$. The four points will never coincide, so you don't have to check this case. Be careful when comparing real numbers! As a preparation, reread pages 107-108 of the textbook or read the discussion on the flaws of floating point numbers in The Python Tutorial.
Output
The output consists of a single line. This line states square if the four points represent a square, if not the line will state not a square.
Example
Input:
0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0
Output:
square
Example
Input:
0.0 0.0 3.0 4.0 8.0 4.0 5.0 0.0
Output:
not a square
Vier punten in het vlak vormen een vierkant als de vier zijden even lang zijn én de twee diagonalen even lang zijn.
De volgende vier punten vormen dus telkens een vierkant:
(0,0), (0,1), (1,1), (1,0)
(0,0), (1,1), (0,1), (1,0)
(0,0), (2,1), (3,-1), (1, -2)
Let dus op het feit dat de punten in een willekeurige volgorde kunnen opgegeven worden, en dat de zijden van het vierkant niet noodzakelijk evenwijdig moeten zijn met de $X$- en $Y$-as. De volgende vier punten vormen geen vierkant, maar respectievelijk een rechthoek, een ruit en een ontaard geval:
(0,0), (0,2), (3,2), (3,0)
(0,0), (3,4), (8,4), (5,0)
(0,0), (0,0), (1,1), (0,0)
Invoer
De invoer bestaat uit acht reële getallen, die elk op een afzonderlijke regel staan. Deze getallen zijn respectievelijk de $x$- en $y$-coördinaat van het punt $a$, de $x$- en $y$-coördinaat van het punt $b$, de $x$- en $y$-coördinaat van het punt $c$ en de $x$- en $y$-coördinaat van het punt $d$. De vier punten zullen nooit alle vier samenvallen, dus dit geval moet je niet controleren. Wees op je hoede voor het vergelijken van reële getallen! Lees als voorbereiding nog eens pagina's 107-108 van het handboek na of lees de bespreking van de beperkingen van floating point getallen in The Python Tutorial.
Uitvoer
De uitvoer bestaat uit één regel. Deze regel is gelijk aan vierkant als de vier punten een vierkant voorstellen en geen vierkant in het andere geval.
Voorbeeld
Invoer:
0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0
Uitvoer:
vierkant
Voorbeeld
Invoer:
0.0 0.0 3.0 4.0 8.0 4.0 5.0 0.0
Uitvoer:
geen vierkant
Added by: | Peter Dawyndt |
Date: | 2013-02-06 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |
Resource: | None |