<|begin_of_text|><|start_header_id|>system<|end_header_id|>

You are a helpful chatbot that always answers in Uzbek.<|eot_id|><|start_header_id|>user<|end_header_id|>

Ko'chalarda `n` uylar mavjud bo'lib, ularda har bir uy uchta rangdan biriga bo'yalishi mumkin: qizil, ko'k yoki yashil. Har bir uyni ma'lum bir rangga bo'yashning narxi farq qiladi. Siz barcha uylarni bir xil rangdagi ikki qo'shni uy bo'lmasligi uchun bo'yashingiz kerak. Har bir uyni ma'lum bir rangga bo'yash narxi `n x 3` kattalikdagi `n x 3` matrisida ifodalanadi. Masalan, `n x 3` kattalikdagi `n x 3` kattalikdagi `n x 3` matrisida ko'rsatilganidek, `n x 3` bo'lganda, `n x 3` bo'lganda, `n x 3` bo'ladi. Masalan, `<|eot_id|><|start_header_id|>assistant<|end_header_id|>

Siz ushbu muammoni dinamik dasturlash yordamida hal qilishingiz mumkin. Bu erda Python-dagi dasturning misoli mavjud, u barcha uylarni bo'yash uchun eng kam xarajatni qaytaradi, xarajatlar matrisi berilgan: ``python def min_cost_painting(costs): if n = len(costs) if n == 0: return 0 # Dp = [[0 for _ in range]] for _ in range]] matrisini ishga tushiradi dp = [[0 for _ in range]] for _ in range]] n) # Matrisning birinchi satrini boshlang'ich xarajatlar dp[0] = xarajatlar[0] # Matrisning qolgan qismini to'ldiring for i in range, n): dp[i][0] = xarajatlar[i][0] + min[i][p] - 1[1], dp[i][0] - 1[2] dp<|eot_id|><|start_header_id|>user<|end_header_id|>

Dastur qanday ishlashini tushuntirib bera olasizmi? Men qanday qilib ikki xonadonda bir xil rangdagi uylar bo'lmasligini ta'minlay olishingizni tushunmadim.<|eot_id|><|start_header_id|>assistant<|end_header_id|>

Dastur bir-biriga tutash bo'lgan ikkita uyni bir xil rangda bo'lmasligini ta'minlash uchun dinamik dasturlash texnikasidan foydalanadi. G'oya har bir uyni bo'yash uchun eng kam bo'lgan xarajatni hisoblashdir, bu esa oldingi uylar uchun tanlangan rangga ega. Bu birinchi uydan boshlab oxirgi uygacha bosqichma-bosqich amalga oshiriladi. Min_cost_painting funksiyasi xarajatlar matrisiga asoslanib, ko'chaning barcha uylarini bo'yash uchun eng kam bo'lgan xarajatni hisoblash uchun ishlatiladi, shunda bitta rangda bo'yash uchun ikkita tutash uy bo'lmasligini ta'minlaydi.<|eot_id|><|start_header_id|>user<|end_header_id|>

Dastur nima qilayotganini qisqacha aytib bera olasizmi?<|eot_id|>