حل تمرین کاف کیک کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین کاف کیک کوئرا با پایتون
پس از اینکه هر k شاگرد آقا فیروز بهخاطر او، به مسافرت نرفتند؛ او برای اینکه آنها را تشویق کند، تصمیم گرفت تا به همراه آنها به قنادی کاف برود و برایشان کیک بخرد. پس از اینکه وارد قنادی شدند، آقا فیروز از دیدن قیمت کیکها خیلی جا خورد ولی چون شاگردانش را خیلی دوست داشت، تصمیم گرفت حتما کیک را بخرد. او که معلم ریاضی بود با خود فکری کرد که هم شاگردان خوشحال شوند و هم خودش هزینه کمتری کند. در ویترین قنادی n کیک کنار هم چیده شده که قیمت امین آنها ci است. آقا فیروز تصمیم گرفت تا کیکها را به k بازه متوالی تقسیم کند (هر کیک باید در دقیقا یک بازه است) و به شاگرد ام بگوید بین کیکهای بازه iام یکی را که خوشمزهتر است انتخاب کند. (هر کدام از شاگردان، کیکی را به عنوان خوشمزهترین انتخاب میکند که از همه گرانتر است و در صورتی که چند کیک با گرانترین قیمت وجود داشت، به دلخواه یکی از آنها را انتخاب میکند) در نهایت او از بین k کیکی که شاگردان انتخاب کردند، یکی از آنها که در واقع ارزانترینشان است را انتخاب میکند و برای آنها میخرد. میدانیم در این ایام رعایت بهداشت ضروری است و به همین دلیل، آقا فیروز مشغول نصب همراه بانک برای تلفن همراه خود است تا بتواند پول کیک را به صورت آنلاین و بدون رد و بدل کردن پول نقد پرداخت کند. در این فاصله شما باید راهکاری پیدا کنید که آقا فیروز کیکها را دستهبندی کند که در نهایت کمترین مقدار پول ممکن را کارت به کارت کند و این مقدار پول لازم را چاپ کنید. در واقع شما باید راهکاری برای دستهبندی کیکها پیدا کنید که در آن کمترین مقدار، میان بیشینه این دستهها، کمترین مقدار ممکن است و این مقدار را چاپ کنید.
ورودی
در خط اول دو عدد n و k آمده است که به ترتیب نمایانگر تعداد کیکها و تعداد شاگردها هستند. در خط دوم n عدد آمده است که عدد iام نمایانگر ci است
خروجی
در تنها خط خروجی، مقدار پولی که آقا فیروز میپردازد را چاپ کنید.
مثال
ورودی نمونه 1
3 2 3 2 3
خروجی نمونه 1
3
در این مثال هرگونه آقا فیروز کیکها را بازهبندی کند، یک بازه به طول 1 و یک بازه به طول 2 ایجاد میشود که در هر دوی آنها قیمت گرانترین کیک برابر 3 است و بنابراین او راهی به جز پرداخت 3 واحد پول ندارد.
ورودی نمونه 2
5 3 5 4 3 2 2
خروحی نمونه 2
2
در این مثال آقا فیروز میتواند هر کدام از عناصر کناری را یک بازه و سه عنصر وسط را هم یک بازه در نظر بگیرد. در این صورت شاگردها کیکهایی با قیمتهای 5، 4 و 2 را پیشنهاد میدهند که او میتواند کیک با قیمت 2 را بخرد و کمترین مقدار ممکن را پرداخت کرده است چون کیکی با قیمت کمتر وجود ندارد.
ورودی نمونه 3
4 1 1 3 4 2
خروجی نمونه 3
4
در این مثال آقا فیروز تنها یک شاگرد دارد و مجبور است تمامی کیکها را یک بازه در نظر بگیرد و در این صورت شاگردش نیز گرانترین کیک یعنی کیک با قیمت 4 را انتخاب میکند.
کد پایتون سوال تمرین کاف کیک
n, k = map(int, input().split()) arr = list(map(int, input().split())) arrCopy = arr.copy() result = -1 arr.sort() if k == 1: result = arr[-1] elif k == 2: result = min(arrCopy[0], arrCopy[-1]) else: result = arr[0] print(result)
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.
ارسال پاسخ