Poçt Ofisləri#2565

Poçt Ofisləri

1 saniyə
64 meqabayt
Çox çətin

Yer üzərində bütün poçt şöbələrinin yerləri və müxtəlif bağlamaların göndəriləcəyi təyinat nöqtələrinin siyahısı verilmişdir. Hər bir bağlama üçün, həmin bağlama üçün təyinat üçün yararlı olan maksimal poçt şöbələri çoxluğunu tapmalısınız. Bu çoxluq aşağıdakı şərtlərə cavab verməlidir:

Bu məsələdə Yer ideallaşdırılmış kürə kimi götürülür və radiusu 6381 km-dir. İki nöqtə arasındakı məsafə haversin düsturu ilə hesablanır:

A = sin((lat1-lat2)/2)^2 + cos(lat1) · cos(lat2) · (sin((long1-long2)/2)^2);

DISTANCE = 6381 · 2 · atan2(sqrt(A), sqrt(1-A));

(Istəsəniz, başqa düsturlardan da istifadə edə bilərsiniz, lakin qeyd edin ki, arkkosinus düsturu kiçik məsafələr üçün əhəmiyyətli yuvarlaqlaşdırma xətalarına səbəb olur ki, bu da səhv nəticələrə gətirib çıxara bilər.)

Giriş

Giriş faylı ikilik (binary) formatdadır; bütün ədədlər little-endian şəklində yazılmışdır. Məzmun aşağıdakı kimidir:

  • 4 bayt — poçt şöbələrinin sayı (tam ədəd, -dan çox deyil)

  • Hər bir poçt şöbəsi üçün iki ədəd (hər biri 4 bayt) — poçt şöbəsinin enlik və uzunluğu (dərəcə ilə). Ədədlər tək dəqiqlikli IEEE754 üzən nöqtəli ədədlərdir. Bütün enliklər ilə dərəcə arasındadır; bütün uzunluqlar ilə dərəcə arasındadır.

  • 4 bayt — bağlamaların sayı (tam ədəd, -dan çox deyil)

  • Hər bir bağlama üçün iki ədəd (hər biri 4 bayt) — təyinat nöqtəsinin enlik və uzunluğu (dərəcə ilə). Ədədlər tək dəqiqlikli IEEE754 üzən nöqtəli ədədlərdir. Bütün enliklər ilə dərəcə arasındadır; bütün uzunluqlar ilə dərəcə arasındadır.

Çıxış

Çıxış faylı da ikilik (binary) formatdadır və yalnız 32-bitlik tam ədədləri little-endian formatında ehtiva edir. Giriş faylındakı hər bir sətrinə görə aşağıdakı məlumatlar verilməlidir:

  • Bir tam ədəd — təyinat çoxluğundakı poçt şöbələrinin sayı

  • tam ədəd — həmin poçt şöbələrinin indeksləri (artan sıra ilə çeşidlənmiş). Girişdəki ilk poçt şöbəsinin indeksi -dir (yəni bütün indekslər ilə arasındadır).

Nümunələr

Nümunə 1

Loading
Loading