Processing math: 100%

المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۱۲:عملی:سوال ۶

توزیع نفت

فرض کنید n مشتری می‌خواهند D=D1+D2++Dn بشکه نفت خریداری کنند (مشتری iام Di بشکه) ولی در مجموع d بشکه نفت داریم d<D. می‌خواهیم این بشکه‌ها را طوری تقسیم کنیم که اگر به مشتری iام di بشکه نفت برسد یک عدد صحیح C بتوان پیدا کرد که شرایط زیر برقرار باشد:

  • اگر DiC آن‌گاه Di=di
  • اگر Di>C آن‌گاه di=C یا di=C+1
  • اگر DiDj آن‌گاه didj
  • d=d1+d2++dn

برنامه‌ای بنویسید که با گرفتن Di ها در ورودی یک C مناسب و diها را حساب کند.

ورودی

در سطر اول فایل ورودی به ترتیب n و d آمده است(n1000 و D در integer جا می‌شود) در سطر بعد نیز Diها به ترتیب آمده است.

خروجی

در سطر اول عدد C و در سطر بعدی diها به ترتیب آمده است. در صورتی که نتوان با این شرایط اعداد را تولید کرد در خروجی پیغام No Solution را بنویسید.

محدودیت‌ها

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

ورودی و خروجی نمونه

ورودی نمونه خروجی نمونه
4 30
6 15 20 5
9
6 9 10 5

ابزار صفحه