۴ سوال اول مسابقه بصورت ۰ و ۱ی داوری می‌شوند، و سوال آخر مسابقه چالشی است. در سوال چالشی هرچه برنامه‌ی شما بهتر باشد نمره‌ی بیشتری دریافت می‌کنید. البته با برنامه‌های ساده هم می‌توانید نمره‌ی خوبی از این سوال دریافت کنید. در صورتی که هنوز بلاگ مسابقه را ندیدید، متن بلاگ مربوط به جزئیات مسابقه را در بلاگ Quera حتماً مطالعه کنید.

پاستا پنه آلفردو


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

در یک رستوران kk آش‌پز کار می‌کنند. nn پاستا پنه آلفردو باید آماده شود. هر حاضرسازی ۳ مرحله دارد و برخی مراحل حاضرسازی می‌تواند هم‌زمان انجام شود. برای حاضر کردن iiامین آن‌ها باید ابتدا یکی از آش‌پزها aia_i دقیقه پاستای آن را حاضر کند و روی میز ۱ بگذارد. سپس یکی از آش‌پزها پاستای آن را از روی میز ۱ بردارد و در bib_i دقیقه پاستا پنه‌ی آن را حاضر کند و روی میز ۲ بگذارد. سپس یکی از آش‌پزها پاستا پنه‌ی آن را از روی میز ۲ بردارد و در cic_i دقیقه پاستا پنه آلفردو را حاضر کند و تحویل مشتری دهد. یک محدودیت مهم، این است که روی میز ۱ حداکثر xx پاستا و روی میز ۲ حداکثر yy پاستا پنه جا می‌شود. برنامه‌ای برای کار کردن آش‌پزها ارائه دهید که زمان آماده‌سازی این nn پاستا پنه آلفردو به وسیله‌ی kk آش‌پز رستوران کمینه شود.

آش‌پز‌ها با اندیس‌های ۱، ۲، ۳، ... kk شماره‌گذاری شده‌اند.

مدت زمان برداشتن یا گذاشتن پاستا‌ها روی میز و تحویل دادن آن به مشتری ناچیز است و می‌توان آن را ۰ در نظر گرفت.

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

اگر آش‌پزی در زمان tt پاستا را بردارد و حاضرسازی آن mm دقیقه طول بکشید در دقیقا زمان t+mt+m باید پاستا را روی میز بگذارد و نمی‌تواند دیرتر یا زودتر آن را روی میز بگذرد.

آش‌پز‌ها تنها در زمان‌هایی که به دقیقه حسابی هستند می‌توانند شروع به انجام کاری کنند. (یعنی زمان ۰، ۱، ۲، ۳، ...)

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

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

ورودی🔗

در خط اول ورودی به ترتیب چهار عدد nn (تعداد پاستا‌ها)، kk (تعداد آش‌پز‌ها)، xx (تعداد پاستا ای که روی میز ۱ جا می‌شود)، yy (تعداد پاستا پنه ای که روی میز ۲ جا می‌شود). و سپس در nn خط بعدی در هر خط ۳ عدد ai,bi,ci a_i, b_i, c_i آمده است که به ترتیب زمان مورد نیاز برای حاضر کردن پاستا، پاستا پنه و پاستا پنه آلفردو ii ام است.

1n,x,y,k1 000 1 \le n,x,y,k \le 1\ 000 1ai,bi,ci1 000 000 1 \le a_i , b_i , c_i \le 1\ 000 \ 000

خروجی🔗

خروجی شما ترتیب حاضر سازی‌ها است که باید شامل 3n3n خط باشد که در خط ii ام شما باید سه عدد ti,si,fit_i, s_i, f_i خروجی دهید که به این معناست که در دقیقه tit_i آش‌پز sis_i به حاضر سازی fif_i امین غذا می‌پردازد (اگر پاستا آن حاضر بود آن را به پاستا پنه تبدیل می‌کنید و اگر پاستا پنه‌ آن حاضر بود به پاستا پنه آلفردو تبدیل می‌کند و گرنه پاستا آن را حاضر می کند) . خروجی شما باید معتبر باشد یعنی شرط‌های زیر برای آن برقرار باشد:

0ti3×109 0 \le t_i \le 3\times10^{9} 1sik 1 \le s_i \le k 1fi1 000 1 \le f_i \le 1\ 000

در لحظه tit_i پاستا fif_i درحال آماده سازی نباشد و آش‌پز مشغول آماده سازی پاستا دیگری نباشد. (ممکن است در لحظه tit_i کار آش‌پز تمام شود و کار دیگری را شروع کند و یا در آن لحظه پاستا به مرحله بعدی آماده سازی برود و آش‌پز پاستا را در همان لحظه از روی میز بردارد)

نباید پاستا ای را بیشتر از ۳ بار در خروجی چاپ کنید.

هیچ گاه روی میزی بیشتر از حد مجازش پاستا نباشد.

برای هر 2i 2 \le i : ti1ti t_{i-1} \le t_i

برای هر تست در صورتی که خروجی شما معتبر نباشد نمره‌ی آن تست را نمی‌گیرید.

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

3 2 1 2
1 5 5
2 1 1
3 2 5
Plain text

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

0 1 1
0 2 2
1 1 1
2 2 2
3 2 3
6 1 3
6 2 2
7 2 1
8 1 3
Plain text

زمانی که طول می‌کشد تا همه پاستا‌ پنه آلفردو‌‌ها حاضر شود ۱۳ دقیقه است و زودتر از این زمان نمی‌شود تمام پاستا پنه آلفردو‌ها را حاضر کرد.

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