๐ Kichik Shahzoda va Samon Yo'li Galaktikasi: C#da Structdan Foydalanib Masala Yechimi
Kichik Shahzoda o'z planetasida yashaydi. Uning malikasi esa boshqa planetada. ๐ Kichik Shahzoda malikaning xavfda ekanligini bilib, uni qutqarishga qaror qiladi. Ammo uning raketasi unchalik kuchli emas, shuning uchun u kamroq planetalarni kesib o'tish yo'lini tanlashi kerak.
๐ Masala Sharti
Kichik Shahzoda malikaning planetasiga borishi uchun kamida nechta planeta chegarasini kesib o'tishini hisoblash kerak. Masala sharti shundayki, planetalar bir-birining chegarasini kesmaydi va Kichik Shahzoda hamda malika hech qachon planeta chegarasida joylashmaydi.
Input
Birinchi qator:
- Test caselar soni T.
Har bir test case:
-
Kichik Shahzodaning va Malikaning koordinatalari:
- (x1, y1) va (x2, y2)
Planetalar soni n.
Har bir planetaning:
- Markazi (cx, cy)
- Radiusi r.
Output
Har bir test case uchun Kichik Shahzoda nechta planeta chegarasini kesib o'tishi kerakligi aniqlanadi.
๐ Yechim Strukturasida:
Yechimni struct
yordamida amalga oshirdik. C# da struct
bizga obyektlarni kichik hajmda yaratish imkonini beradi. Masalan, biz bu masalada Kichik Shahzoda, Malika va Planetalarning koordinatalarini saqlash uchun struct tuzishimiz mumkin.
Yana ham qizig'i biz agar Point struct ni tuzib chiqsak uni Planet struct ichida chaqirsak 1 o'q bilan 2 quyoni urgan bo'lamiz , ya'ni planet ichida point va radiusning o'zi boladi, shudan qilip keyin biz planet struct ichida berilgan nuqtani unig ichidami yoki yoqligini tekshirib beradigan funksia yosak ishimizni juda osonlashtiradi.
๐ Planet Chegarasini Kesish Hisobi
Planetani kesib o'tishni aniqlash uchun har bir planetaning radiusi va Kichik Shahzoda bilan Malikaning harakat yo'nalishini hisoblash kerak bo'ladi. Man quyidagicha algoritmni qo'lladim:
- Planetaning radiusi va nuqtalarning (Kichik Shahzoda va Malika) planetaga bo'lgan masofasi orasidagi munosabatdan foydalanib, chegarani kesish sonini aniqladim.
- Har bir planetaning markaziy nuqtasi va radiusi bo'yicha, nechta marta Kichik Shahzoda chegara orqali o'tishini hisobladim.
๐ป Dastur Yechimi
To'xtang agar siz bu masala haqida oldin eshitmagan bo'sangiz oldin urinib ko'ring :
๐ Masala!: Kichik Shahzoda Masalasi
Ushbu masalani yechish uchun C# tilidan foydalandim. Quyidagi GitHub repostoriyamda dastur kodi joylangan. To'liq kod :
๐ GitHub Repository: Masalaning yechimi
๐ Xulosa
Kichik Shahzoda va malikaning yo'lini topish uchun struct
dan foydalandik va planeta chegarasini kesish yechimini C# tilida amalga oshirdim. Bu masala nafaqat algoritmik jihatdan qiziq, balki C# struct bilan ishlashda ham foydali bo'ldi. ๐ฏ
Top comments (0)