لینک‌های مفید برای شرکت در مسابقه:

در طول مسابقه می‌توانید سؤالات خود را از قسمت «سؤال بپرسید» مطرح کنید.

سیستم حمل‌ونقل


  • محدودیت زمان: ۰٫۵ ثانیه
  • محدودیت حافظه: ۶۴ مگابایت

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

در فرایند ارسال مرسوله‌ها از مرکز پردازش به مرکز توزیع به هر راننده تعدادی مرسوله واگذار می‌شود که وظیفه‌ی تحویل این مرسوله‌ها را دارد. هر مرسوله وزن مشخصی دارد و باید به مرکز توزیع مشخصی فرستاده شود. این دو مقدار را با متغیر های weight\mathrm {weight} و deliveryCenter\mathrm{delivery Center} مشخص می‌کنیم.

وسایل نقلیه راننده‌ها دو محدودیت حداکثر تعداد مرسوله قابل حمل و حداکثر وزن قابل حمل را دارد. این دو محدودیت را با متغیر‌های maxPackages\mathrm{max Packages} و maxWeight\mathrm{max Weight} مشخص می‌کنیم.

مرسوله‌ها به تریتب تاریخ تحویل به مشتری، به راننده تحویل داده می‌شوند و راننده نیز باید به همان ترتیب بسته‌ها را به مراکز توزیع تحویل دهد. راننده نمی‌تواند ترتیب مرسوله‌ها را به هم زده و به ترتیب دلخواه مرسوله‌ها را تحویل دهد.

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

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

ورودی🔗

در خط اول ۴ عدد صحیح mm، nn، maxPackages\mathrm{max Packages} و maxWeight\mathrm{maxWeight} داده می‌شود که به ترتیب نمایانگر تعداد مراکز توزیع، تعداد مرسوله‌ها، حداکثر ظرفیت تعدادی و حداکثر ظرفیت حجمی راننده است. 1n,m10 0001 \leq n, m \leq 10 \ 000 1maxPackagesm1 \leq max Packages \leq m 1maxWeight100 0001 \leq max Weight \leq 100 \ 000

در nn خط بعدی دو عدد صحیح deliveryCenter\mathrm{delivery Center}​ و weight\mathrm{weight} داده می‌شود که به ترتیب نشان دهنده شماره مرکز توزیع و وزن مرسوله است.

1weightmaxWeight 1 \leq weight \leq max Weight 1deliveryCenterm 1 \leq delivery Center \leq m

خروجی🔗

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

مثال‌ها🔗

نمونه ورودی ۱🔗

2 3 3 4
1 1
2 1
1 1
Plain text

نمونه خروجی ۱🔗

4
Plain text

حداقل تعداد سفر‌های لازم به این گونه است که راننده تمامی مرسوله‌ها را برداشته و به مرکز توزیع اول می‌رود (سفر اول) و مرسوله اول را تحویل می‌دهد. سپس به مرکز توزیع دوم رفته (سفر دوم) و مرسوله دوم را تحویل می‌دهد. در انتها نیز به مرکز توزیع اول بازگشته (سفر سوم) و مرسوله سوم را تحویل داده و به مرکز توزیع باز می‌گردد (سفر چهارم).

نمونه ورودی ۲🔗

3 5 3 6
1 2
3 3
3 1
3 1
2 4
Plain text

نمونه خروجی ۲🔗

6
Plain text

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

نمونه ورودی ۳🔗

3 6 6 7
1 4
1 2
2 1
2 1
3 2
3 4
Plain text

نمونه خروجی ۳🔗

6
Plain text

حداقل تعداد سفر‌های لازم به این گونه است که راننده مرسوله اول و دوم را برمی‌دارد و به مرکز توزیع شماره ۱ می‌رود و پس از تحویل مرسوله‌ها به مرکز پردازش باز می‌گردد (۲ سفر). سپس مرسوله‌های سوم و چهارم را برمی‌دارد و به مرکز توزیع شماره ۲ می‌رود و پس از تحویل مرسوله به مرکز پردازش باز می گردد (۲ سفر). در نهایت مرسوله پنجم و ششم را برمی‌دارد و به مرکز توزیع شماره ۳ رفته و پس از تحویل مرسوله‌ها به مرکز پردازش باز می‌گردد (۲ سفر).

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.