• محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

امروز روز جهانیه ریاضیاته! و «بهینه‌سازی» یکی از کاربردی ترین مباحث اونه...

توضیح تصویر

%align_center_start%

دکتر غلامحسین مصاحب

%align_end%

مجموعه‌ای از فایل‌ها داریم و قصد داریم آن‌ها را فقط با استفاده از یک فلش، از کامپیوتر مبدا به کامپیوتر مقصد منتقل کنیم.

در هر انتقال زیر‌مجموعه‌ای از این فایل‌ها را انتخاب می‌کنیم و همه را روی فلش ریخته و در کامپیوتر مقصد خالی می‌کنیم،‌ با رعایت این نکته که حجم این زیر‌مجموعه از فایل‌ها نباید از ظرفیت فلش بیشتر شود.

ما بی‌نهایت تنبل هستیم در نتیجه می‌خواهیم با کمترین تعداد انتقال این کار را انجام دهیم. از آن‌جایی که شما برنامه‌نویسی بلد هستید، با گرفتن تعداد و حجم فایل‌ها به همراه ظرفیت فلش در ورودی، این کمترین تعداد بار را خروجی چاپ کنید.

ورودی

در خط اول ورودی دو عدد طبیعی nn و CC با یک فاصله از هم آمده‌اند که به ترتیب تعداد فایل‌ها و ظرفیت فلش را مشخص می‌کنند.

1n18 1 \le n \le 18 1C100 1 \le C \le 100

در خط دوم nn عدد طبیعی با فاصله از هم آمده‌اند. عدد iiام، viv_i است که حجم فایل iiام را مشخص می‌کند.

1viC 1 \le v_i \le C

خروجی

در تنها خط خروجی کمترین تعداد انتقال این فایل‌ها روی فلش را خروجی دهید.

مثال

ورودی نمونه ۱

3 10
2 4 3
Plain text

خروجی نمونه ۱

1
Plain text

مجموع حجم سه فایل می‌شود ۹ که از ظرفیت فلش(۱۰) کمتر است، پس تنها با یک بار انتقال می‌توانیم به خواسته‌ی مسئله برسیم.

ورودی نمونه ۲

4 15
2 10 5 13
Plain text

خروجی نمونه ۲

2
Plain text

در راه حل بهینه، ابتدا دو فایل با حجم‌های ۲ و ۱۳ و در دور دوم فایل‌های با حجم ۱۰ و ۵ را منتقل می‌کنیم.


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.