من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

حل تمرین شارژر تباه کوئرا با پایتون

حل تمرین شارژر تباه کوئرا با پایتون
حل تمرین شارژر تباه کوئرا با پایتون

حل تمرین شارژر تباه کوئرا با پایتون

در این نوشته به روش حل یکی از سوالات برنامه نویسی وب‌سایت کوئرا می‌پردازیم.

 

حل تمرین شارژر تباه کوئرا با پایتون

عمو اسکروچ که دلش حسابی برای اعضای خاندانش تنگ شده، تصمیم دارد در جشن سال نوی آن‌ها (به صورت آنلاین!) شرکت کند. خاندان عمو اسکروچ n−1 نفره است و هر یک از آن‌ها یک جشن برگزار می‌کند. عمو اسکروچ که نمی‌تواند با یک موبایل در دو جشن شرکت کند نیاز به n−1 موبایل با شارژ کامل دارد. او برای تامین این تعداد موبایل پیش دوستش رفته است. دوست عمو اسکروچ موبایل دارد و موبایل اُم ai درصد شارژ دارد. شارژر اسرارآمیزی هم داریم که می‌توان با آن از موبایلی که حداقل x درصد شارژ دارد، x درصد شارژ کم کرد و به موبایلی دیگر y درصد شارژ اضافه کرد. از آنجایی که طبق گفته‌ی فیزیک‌دانان پایستگی انرژی برقرار است، مقدار x حتماً از مقدار  بیشتر است. از آن‌جا که عمو اسکروچ وقت زیادی برای پر کردن شارژ موبایل‌ها ندارد، می‌خواهد بداند که آیا می‌تواند با استفاده از شارژر اسرارآمیز n−1 موبایل را به طور کامل شارژ کند؟ عمو اسکروچ که درگیر کارهای سال نوست و وقت ندارد از شما می‌خواهد که به او کمک کنید. دقت کنید که اگر طی عملیاتی، شارژ موبایلی بیش از 100 درصد شد، شارژ آن را همان 100 درصد در نظر می‌گیریم.

 

ورودی

ورودی تنها شامل دو خط است که در خط اول به ترتیب n، x و y و در خط بعد n عدد آمده است که عدد اًم برابر با ai خواهد بود.

ورودی در تمرین شارژر تباه

 

خروجی

خروجی شامل یک خط است که پاسخ به مسئله خواهد بود. در صورتی که می‌توان شارژ n−1 موبایل را به 100 رساند، عبارت YES و در غیر این صورت NO را چاپ کنید.

 

مثال

ورودی نمونه 1

2 4 2
9 99

 

خروجی نمونه 1

YES

اگر 4 درصد شارژ از موبایل اول کم کنیم و 2 درصد شارژ به دومی بدهیم، در نهایت موبایل اول 5 درصد و موبایل دوم 100 درصد شارژ خواهد داشت.

 

ورودی نمونه 2

3 3 2
10 95 98

 

خروجی نمونه 2

NO

به هیچ طریق نمی‌توان دو موبایل با شارژ 100 به دست آورد.

 

کد پایتون سوال تمرین شارژر تباه

n, x, y = map(int, input().split())
w = list(map(int, input().split()))

w.sort()
s = 0

for i in range(1, n):
    s += 100 - w[i]

a = min(w) // x
if a * y >= s:
    print("YES")
else:
    print("NO")

 

منبع سوال: کوئرا

اگر نیاز به حل تمرین‌های دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]