Ridgemont-un Planetində Sürətli Zamanlar#6003

Ridgemont-un Planetində Sürətli Zamanlar

1 saniyə
64 meqabayt
Asan

NASA, Dr. Ridgemont tərəfindən kəşf edilmiş yeni bir planetlə əlaqə qurdu. Bu planetin təsadüfən bizim Yer üzündə istifadə etdiyimiz təqvimə çox bənzər bir təqvimi var. Lakin dəqiqələr, saatlar, günlər və s. hamısı fərqli müddətə malikdir. Məsələn, Ridgemont Planetində bir dəqiqə 54 saniyə ola bilər, hər saatda 61 dəqiqə, hər gündə 23 saat və hər ildə 340 gün ola bilər. İl aylarla bölünür və Yer üzündə olduğu kimi, hər ay fərqli sayda günə malik ola bilər. Sakinlər təqvimi belə tənzimləyiblər ki, artıq illər və ya yay vaxtı tətbiqi ilə məşğul olmaq lazım olmasın, amma bunun xaricində hər şey fərqlidir.

NASA proqram mühəndisləri yaxşı kod təkrar istifadəsini tətbiq etmək istəyirlər, buna görə də təbii olaraq Linux mənbə kodlarını uzaq dünyadakı sakinlərlə danışmaq üçün istifadə etdikləri rabitə sisteminə köçürmək istəyirlər. Onların proqramlarının çoxu "difftime" funksiyasından istifadə edir, bu funksiya iki tarix və vaxt spesifikasiyasını alır və aralarındakı saniyə fərqini qaytarır. Məsələn, Yer üzündə, bir günün 12:35:00 vaxtı ilə növbəti günün 12:35:15 vaxtı arasındakı fərqi soruşsam, cavab 86415 olur. Bu, bir günün saniyələrini (24 saat çarpı 60 dəqiqə çarpı 60 saniyə, yəni 86400) və əlavə 15 saniyəni təmsil edir. Bütün tarix/vaxt spesifikasiyaları "MMDDYYHHMMSS" formatında ifadə edilir.

İntuitiv olaraq, difftime tərəfindən istifadə edilən prosedur, giriş spesifikasiyaları arasında neçə tam gün keçdiyini müəyyənləşdirmək və düzgün sayda saniyə əlavə etməkdir. Sonra neçə saat daha lazım olduğunu, sonra neçə dəqiqə daha lazım olduğunu və s. müəyyənləşdirir.

Misal: Tutaq ki, planetdə 13 ay var və hər ayın gün sayı aşağıdakı cədvəldə göstərilmişdir. Bir ildə cəmi 399 gün var.

Planetdə hər gündə 23 saat, hər saatda 53 dəqiqə və hər dəqiqədə 61 saniyə var.

Bir NASA mühəndisi 02/29/11-22:30:05 və 03/01/11-10:00:00 arasındakı fərqi bilmək istəyir. Difftime tərəfindən yerinə yetirilən hesablamalar aşağıdakı kimi ola bilər:

Və bu halda funksiya 108087 "planet saniyəsi" qaytarır.

Uzaq bir planetdəki zamanın xüsusiyyətlərini və iki tarix/vaxt spesifikasiyasını oxuyan və sonra iki vaxt arasındakı fərqi çap edən bir proqram yazın. İlk tarix/vaxt spesifikasiyasının ikinci vaxtdan sonra olmadığına zəmanət verilir.

Giriş

Hər bir hal üçün nəzərə alınacaq təsadüfi sayda hallar olacaq. Hər bir halın girişi yeni bir sətirdə başlayacaq və bir və ya daha çox sətirə yayılan bir sıra dəyərlərdən ibarət olacaq. Hər bir sıra aşağıda göstərilən qaydada verilmiş məlumat maddələrini ehtiva edəcək, bir və ya daha çox boşluq və/yaxud yeni sətir ilə ayrılacaq. Hər bir maddə üçün icazə verilən dəyər aralığı maddənin ardınca mötərizədə verilmişdir.

  • Bir dəqiqədəki saniyələrin sayı (1..100)

  • Bir saatdakı dəqiqələrin sayı (1..100)

  • Bir gündəki saatların sayı (1..100)

  • Bir ildəki ayların sayı (1..99), ardınca həmin qədər tam ədəd, hər biri müvafiq ayda olan günlərin sayını təmsil edir (1..99)

  • Başlanğıc tarix/vaxt spesifikasiyası MM/DD/YY-HH:MM:SS formatında, daxilində boşluq olmadan.

  • Son tarix/vaxt spesifikasiyası MM/DD/YY-HH:MM:SS formatında, daxilində boşluq olmadan.

Yer üzündə olduğu kimi, aylar və günlər birdən başlayaraq nömrələnir, illər, saatlar, dəqiqələr və saniyələr sıfırdan başlayaraq nömrələnir.

Son halın ardınca gələn sıra tək sıfırdan ibarət olacaq.

Çıxış

Hər bir hal üçün proqramınız başlanğıc və son tarix/vaxt spesifikasiyaları arasındakı fərqi saniyə ilə çap etməlidir. Hər bir nəticə öz sətirində, birinci sütundan başlayaraq, heç bir son boşluq olmadan çap edilməlidir.

Nümunələr

Nümunə 1

Loading
Loading