المپدیا

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

ابزار کاربر

ابزار سایت


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

توزیع نفت

فرض کنید $n$ مشتری می‌خواهند $D=D_1+D_2+…+D_n$ بشکه نفت خریداری کنند (مشتری $i$ام $D_i$ بشکه) ولی در مجموع $d$ بشکه نفت داریم $d<D$. می‌خواهیم این بشکه‌ها را طوری تقسیم کنیم که اگر به مشتری $i$ام $d_i$ بشکه نفت برسد یک عدد صحیح $C$ بتوان پیدا کرد که شرایط زیر برقرار باشد:

  • اگر $D_i\Leftarrow C$ آن‌گاه $D_i=d_i$
  • اگر $D_i>C$ آن‌گاه $d_i=C$ یا $d_i=C+1$
  • اگر $D_i\Leftarrow D_j$ آن‌گاه $d_i\Leftarrow d_j$
  • $d=d_1+d_2+…+d_n$

برنامه‌ای بنویسید که با گرفتن $D_i$ ها در ورودی یک $C$ مناسب و $d_i$ها را حساب کند.

ورودی

در سطر اول فایل ورودی به ترتیب $n$ و $d$ آمده است($n\Leftarrow 1000$ و $D$ در $integer$ جا می‌شود) در سطر بعد نیز $D_i$ها به ترتیب آمده است.

خروجی

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

محدودیت‌ها

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

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

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

ابزار صفحه