PROG0550 - Territorial waters

no tags 

The territorial waters as defined by the 1982 United Nations Convention on the Law of the Sea, is the belt of water adjecent to the land area of a coastal nation that is regarded as the sovereign territory of the state (including the airspace over and seabed below). Territorial waters are separated from the land area and internal waters by the baseline (usually the mean low-water mark). The territorial zone of a state extends up to 12 nautical miles (1 nautical mile = 1852 meters) from its baseline, and the state has full jurisdiction and control over its territorial waters.

The contiguous zone is the band of water extending from the outer edge of the territorial waters to up to 24 nautical miles from the baseline, within which a state can exert limited control for the purpose of preventing or punishing "infringement of its customs, fiscal, immigration or sanitary laws and regulations within its territory or territorial waters". However, unlike the territorial waters, there is no standard rule for resolving such conflicts and the states in question must negotiate their own compromise. The exclusive economic zone extends from the outer limit of the contiguous zone to a maximum of 200 nautical miles from the territorial waters baseline. A coastal nation has control of all economic resources within its exclusive economic zone, including fishing, mining, oil exploration, and any pollution of those resources. However, it cannot prohibit passage or loitering above, on, or under the surface of the sea that is in compliance with the laws and regulations adopted by the coastal state in accordance with the provisions of the UN Convention, within that portion of its exclusive economic zone beyond its territorial waters. Any stretch of a sea or an ocean beyond the exclusive economic zone of a country is called the international waters.

maritime zones

Your task is to determine for a given point in the sea, in what zone it is located relative to a given baseline. The following table defines the zones based on the distance of the point to the baseline.

distance to baseline (miles) name of maritime zone
$[0, 12[$ territorial waters
$[12, 24[$ contiguous zone
$[24, 200[$ exclusive economic zone
$[200, \infty[$ international waters

In this assignment we consider the baseline to be a straight line. To determine the correct name of the zone, we therefore must be able to compute the distance from a point (in the sea) to a straight line (the baseline).

Distance from a point to a straight line

The shortest distance from a point to a straight line can be computed in the following way.

distance to line segment

Assume that the straight line connects the two points $(x_1, y_1)$ and $(x_2, y_2)$, and that we look for the shortest distance between this straight line and the point $(x_3, y_3)$. The perpendicular line from the point $(x_3, y_3)$ intersects the straight line in the point $(x_n, y_n)$, which is called the nadir. As a result, the shortest distance is equal to the distance between the points $(x_3, y_3)$ and $(x_n, y_n)$. The coordinates of the nadir $(x_n, y_n)$ can be computed as follows: $$\begin{eqnarray*}u &=& \frac{(x_3 - x_1)(x_2 - x_1) + (y_3 - y_1)(y_2 - y_1)}{(x_2 - x_1)^2 + (y_2 - y_1)^2} \\ x_n &=& x_1 + u(x_2 - x_1) \\ y_n &=& y_1 + u(y_2 - y_1) \end{eqnarray*}$$ The Euclidean distance $d$ between the nadir $(x_n, y_n)$ and the point $(x_3, y_3)$ can then be computed as follows: $$ d = \sqrt{(x_n - x_3)^2 + (y_n - y_3)^2} $$

Input

The input contains six numbers $x_1, y_1, x_2, y_2, x_3, y_3 \in \mathbb{R}$, each on a separate line. The straight line that connects the points $(x_1, y_1)$ and $(x_2, y_2)$ represents the baseline of a coastal nation. The point $(x_3, y_3)$ represents a point in the sea. All coordinates are expressed in nautical miles.

Output

Three lines of output need to be generated, that respectively contain the coordinates of the nadir, the shortest distance from the given point in the sea to the given baseline (in nautical miles), and the zone in which the point in the sea is located (relative to the baseline). The name of the maritime zone must be determined using the table given in the introduction. Have a look at the examples below to see how the output must be formatted.

Example

Input:

100.0
100.0
200.0
200.0
285.0
19.0

Output:

nadir: (152.0, 152.0)
distance: 188.09040379562165 nautical miles
zone: exclusive economic zone

Example

Input:

100.0
100.0
200.0
200.0
140.0
150.0

Output:

nadir: (145.0, 145.0)
distance: 7.0710678118654755 nautical miles
zone: territorial waters

De territoriale wateren worden gevormd door de zeestrook die grenst aan het landgebied van een kuststaat en waarover de soevereiniteit van deze staat zich uitstrekt (met inbegrip van het luchtruim, de bodem en de ondergrond). De territoriale wateren worden gescheiden van het landgebied en de binnenwateren door de basislijn (of laagwaterlijn). De maximale territoriale zone bedraagt 12 zeemijlen (1 zeemijl = 1852 meter). Binnen de territoriale zone kan een land zelf zijn wetten bepalen en rechtspraak toepassen. Zo kunnen schepen uit een ander land bijvoorbeeld niet gaan vissen in de territoriale wateren zonder de toestemming van de kuststaat. Ook zeezenders zijn strafbaar als ze zonder toestemming uitzenden vanuit de territoriale wateren, en kunnen dus enkel uitzenden vanuit de internationale wateren.

De aansluitende zone is de strook volle zee die grenst aan de territoriale wateren. Ze vormt een soort buffer tussen de territoriale wateren en de volle zee, waarin welomschreven en beperkte bevoegdheden gelden voor de kuststaat. De aansluitende zone strekt zich uit tot maximaal 24 zeemijl van de basislijn. De exclusieve economische zone is de strook volle zee die zich uitstrekt tot 200 zeemijl buiten de kust van een kuststaat. Het scheepvaartverkeer is daar vrij, als bevond het zich in internationale wateren, maar de kuststaat heeft het recht op de bodemrijkdom, het recht op visserij en het recht op wetenschappelijk onderzoek. De internationale wateren worden tenslotte gevormd door de volle zee buiten de grenzen te land en ter zee van een staat.

maritieme zones

Je opdracht bestaat erin om voor een gegeven punt in zee te bepalen in welke zone het zich bevindt, ten opzichte van een gegeven basislijn. Hierbij worden de zones gedefinieerd op basis van de volgende afstanden ten opzichte van de basislijn.

afstand tot basislijn (zeemijl) naam maritieme zone
$[0, 12[$ territoriale wateren
$[12, 24[$ aansluitende zone
$[24, 200[$ exclusieve economische zone
$[200, \infty[$ internationale wateren

We gaan er in deze opgave van uit dat de basislijn een rechte vormt. Om de juiste zone te kunnen bepalen, moeten we dus de afstand van een punt (in zee) tot een rechte (de basislijn) kunnen berekenen.

Afstand van een punt tot een rechte

De korste afstand van een punt tot een rechte kan op de volgende manier berekend worden.

afstand tot lijnsegment

Stel dat de rechte door de twee punten $(x_1, y_1)$ en $(x_2, y_2)$ loopt en dat we de kortste afstand tussen deze rechte en het punt $(x_3, y_3)$ zoeken. De loodlijn uit het punt $(x_3, y_3)$ snijdt de rechte in het punt $(x_v, y_v)$, dat het voetpunt genoemd wordt. De kortste afstand is dan gelijk aan de afstand tussen de punten $(x_3, y_3)$ en $(x_v, y_v)$. De coördinaten van het voetpunt $(x_v, y_v)$ kunnen als volgt bepaald worden: $$\begin{eqnarray*}u &=& \frac{(x_3 - x_1)(x_2 - x_1) + (y_3 - y_1)(y_2 - y_1)}{(x_2 - x_1)^2 + (y_2 - y_1)^2} \\ x_v &=& x_1 + u(x_2 - x_1) \\ y_v &=& y_1 + u(y_2 - y_1) \end{eqnarray*}$$ De Euclidische afstand $a$ tussen het voetpunt $(x_v, y_v)$ en het punt $(x_3, y_3)$ kan dan als volgt berekend worden: $$a = \sqrt{(x_v - x_3)^2 + (y_v - y_3)^2}$$

Invoer

De invoer bestaat uit zes getallen $x_1, y_1, x_2, y_2, x_3, y_3 \in \mathbb{R}$ die elk op een afzonderlijke regel staan. De rechte door de punten $(x_1, y_1)$ en $(x_2, y_2)$ stelt de basislijn van een kuststaat voor. Het punt $(x_3, y_3)$ stelt een punt in zee voor. Alle coördinaten worden uitgedrukt in zeemijl.

Uitvoer

Er moeten drie regels uitvoer gegenereerd worden, die respectievelijk de coördinaten van het voetpunt aangeven, de afstand van het gegeven punt in zee tot de gegeven basislijn (in zeemijl), en de zone waarin het punt zich bevindt (relatief ten opzichte van de basislijn). De naam van de maritieme zone moet bepaald worden op basis van de tabel uit de inleiding. Bekijk onderstaande voorbeelden om te zien op welke manier de uitvoer moet opgemaakt worden.

Voorbeeld

Invoer:

100.0
100.0
200.0
200.0
285.0
19.0

Uitvoer:

voetpunt: (152.0, 152.0)
afstand: 188.09040379562165 zeemijl
zone: exclusieve economische zone

Voorbeeld

Invoer:

100.0
100.0
200.0
200.0
140.0
150.0

Uitvoer:

voetpunt: (145.0, 145.0)
afstand: 7.0710678118654755 zeemijl
zone: territoriale wateren


Added by:Peter Dawyndt
Date:2015-09-11
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC