فربد طول و عرض جغرافیایی خانهاش را میداند. فربد به متراژ رفته و طول و عرض جغرافیایی املاک همسایگانش را هم میبیند. به فربد کمک کنید تا بتواند برمبنای طول و عرض جغرافیایی خانهٔ خود و همسایگانش فاصلهٔ خانهٔ خود با هر کدام از آنها را برحسب کیلومتر حساب کند.
عددی که به عنوان عرض جغرافیایی یا Latitudes بیان میشود عددی در بازهٔ ۰ تا ۹۰ و عددی که به عنوان طول جغرافیایی یا Longitudes بیان میشود عددی در بازهٔ ۰ تا ۱۸۰ است. در این سوال از امکان اعشاری بودن این اعداد صرف نظر کنید.
برای محاسبهٔ فاصلهٔ دو نقطه از کرهٔ زمین برحسب طول و عرض جغرافیایی از الگوریتم **haversine** استفاده کنید.
```
a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)
c = 2 ⋅ atan2( √a, √(1−a) )
d = R ⋅ c
```
در فرمول بالا φ برابر عرض جغرافیایی یا Latitudes و λ برابر طول جغرافیایی یا Longitudes هست.
پیادهسازی این الگوریتم در پایتون برای یک مثال خاص به این شکل خواهد بود:
```python
from math import sin, cos, sqrt, atan2, radians
# approximate radius of earth in km
R = 6373.0
# example lat and long
lat1 = radians(52.2296756)
lon1 = radians(21.0122287)
lat2 = radians(52.406374)
lon2 = radians(16.9251681)
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
distance = R * c
```
# ورودی
در خط اول ورودی طول و عرض جغرافیایی خانهٔ فربد را بگیرید. این دو عدد با یک فاصله از هم جدا شده.
در خط سوم عدد n به معنی تعداد املاک موجود را از کاربر بگیرید.
در n خط بعد در هر خط، اطلاعات یک ملک را از کاربر بگیرید.
اطلاعات هر ملک شامل شمارهٔ id خانه، طول جغرافیایی ملک، عرض جغرافیایی ملک و مساحت ملک است.
# خروجی
خروجی برنامه باید در n خط چاپ شود.
در هر خط از خروجی شمارهٔ id خانه و فاصله خانهٔ فربد با آن خانه که با یک فاصله از هم جدا شدند چاپ شود. دقت کنید که ترتیب چاپ شدن فاصلهها در هر خط به **همان ترتیبی باشد که کاربر به برنامه ورودی** دادهاست یعنی **لازم نیست** برحسب id خانهها مرتب شود. همچنین اعدادی که در خروجی چاپ میکنید با دو رقم اعشار باشد و گرد شده باشد.
# مثال
## ورودی نمونه ۱
```
170 20
6
3 160 85 40
1 175 25 70
4 160 86 40
2 176 25 100
5 169 21 400
6 40 10 300
```
## خروجی نمونه ۱
```
3 7238.69
1 756.99
4 7348.11
2 830.09
5 152.4
6 13611.73
```
محاسبهٔ فاصلهٔ خانه فربد با خانهٔ همسایگانش
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.