۷ سگمنت


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

اعداد را می‌توان به صورت‌های مختلفی نمایش داد. مثلاً می‌توان به صورت ده‌دهی٬ رومی٬ مبنای دو و ... نشان داد!

در این سوال ما با دو نوع نمایش علمی و نمایش روی صفحه‌ی دیجیتال ۷ سگمنت seven segment سروکار داریم.

  • در نمایش علمی عدد به صورت دو بخش نوشته می‌شود یک بخش یک عدد اعشاری است که دقیقاً یک رقمِ بیشتر از صفر قبل از ممیز دارد (و اگر ممیز نداشته باشد یک رقمی است) بخش اول و بخش دوم توسط یک کاراکتر ee جدا می‌شوند و بخش دوم یک عدد صحیح نامنفی است. در این صورت اگر بخش اول عدد aa باشد و بخش دوم عدد bb باشد٬ عدد واقعی‌مان a×10ba \times 10^b است. طبق این تعریف 0.3e100.3e10 یک نمایش علمی نیست‌ و باید به صورت 3e93e9 نوشته شود و همچنین 2e02e0 بیانگر عدد 22 و 2.33e32.33e3 بیانگر عدد 23302330 می‌باشد.

  • در نمایش seven segment که روی صفحات دیجیتال وجود دارد ۷ عدد چراغ LED به صورت شکل زیر گذاشته شده‌است که می‌تواند ارقام مختلف را از ۰ تا ۹ نمایش دهد و برای نمایش یک عدد kk رقمی باید از kk تا از این ۷ سگمنت‌ها استفاده شود.

توضیح تصویر

میزان برق مورد نیاز برای نمایش یک عدد را برابر تعداد چراغ‌هایی تعریف می‌کنیم که برای نمایش آن لازم است.

در این سوال به شما عددی طبیعی بیشتر از ۰ در نمایش علمی معتبر داده می‌شود و شما باید بگویید اگر این عدد را روی یک صفحه ی دیجیتال نمایش دهیم٬ چند واحد برق مصرف می‌شود.

ورودی🔗

به شما رشته‌ی ss در ورودی داده می‌شود که یک نمایش علمی معتبر از عددی طبیعی ‌است.

3s103 \le |s| \le 10

خروجی🔗

در تنها خط خروجی میزان برق مصرف شده برای نمایش ۷ سگمنت را خروجی دهید.

مثال🔗

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

2.3e10
Plain text

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

64
Plain text

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

8e10000000
Plain text

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

60000007
Plain text

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

9e0
Plain text

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

6
Plain text

سنگ کاغذ قیچی


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

شنگدباو و دوستش درحال "سنگ-کاغد-قیچی" بازی کردن هستند! می‌دانیم شنگدباو P P بازی اول کاغذ، RR بازی بعد سنگ و S S بازی اخر قیچی می‌آورد.

اگر دوستش بخواهد a a بار کاغد، bb بار سنگ و c c بار قیچی بیاورد، دوستش ماکسیمم امتیازی که می‌تواند به دست بیاورد چند است؟

دوستش می‌تواند به هرترتیبی کاغذ، سنگ و قیچی بیاورد.

هر بازی که شنگدباو ببرد یک امتیاز منفی برای دوستش حساب می‌شود.

هر بازی که شنگدباو ببازد یک امتیاز مثبت برای دوستش حساب می‌شود.

در صورتی که دو نفر مساوی شوند امتیازی به کسی تعلق نمی‌گیرد.

ورودی🔗

در تنها خط ورودی به ترتیب ۶ عدد PP ،RR ،SS ،aa ،bb و cc آمده است.

0P,R,S,a,b,c109 0 \le P,R,S,a,b,c \le 10^{9}

P+R+S=a+b+cP+R+S = a+b+c

خروجی🔗

در تنها خط خروجی جواب مساله را چاپ کنید.

مثال🔗

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

3 3 3 3 3 3
Plain text

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

9
Plain text

توضیح : دوستش می‌تواند ۳ بازی اول قیچی و ۳ بازی دوم کاغد و ۳ بازی اخر سنگ بیاورد و همه بازی‌ها را ببرد.

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

10 0 2 7 5 0
Plain text

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

-1
Plain text

توضیح : بهترین حالت این است که ۷ بازی اول کاغذ و ۵ بازی اخر سنگ بیاورد که چون شنگدباو ۱۰ بازی اول کاغد و ۲ بازی اخر قیچی می‌آورد ۳ بازی را می‌بازد و ۲ بازی را می‌برد.

درخت تقسیم


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

شنگدباو روی ساختمان‌داده‌‌ای جدید به نام درخت تقسیم دارد کار می‌کند این درخت از nn راس تشکیل شده‌است و هر رأس بجز رأس شماره 11 یک پدر دارد یعنی رأس ii ام پدرش pip_i است و pi<ip_i < i می‌باشد. شنگدباو قرار است روی هر راس برچسبی بنویسد به طوریکه:

  • برچسب هر رأس از برچسب رأس پدرش بیشتر یا مساوی باشد.
  • باقیمانده‌ی تقسیم ii بر برچسب رأس iiام صفر باشد.

با توجه به اینکه تعداد حالت‌های برچسب گذاری ممکن است خیلی زیاد باشد٬‌ شنگدباو گیج شده‌است و می‌خواهد بداند چند حالت مختلف برچسب گذاری هست که این شرایط را داشته باشد. به شنگدباو کمک کنید!

با توجه به اینکه تعداد حالات ممکن است زیاد باشد باقیمانده‌ی جواب را بر 109+710^9 + 7 خروجی دهید.

ورودی🔗

در خط اول ورودی به شما عدد nn یعنی تعداد رئوس درخت داده می‌شود و سپس در خط بعدی n1n-1 عدد ورودی داده می‌شود که عدد iiام pi+1p_{i+1} است.

1n500 0001\le n \le 500\ 000

1pi<in1 \le p_i < i \le n

خروجی🔗

در یک خط تنها تعداد حالات جواب را به پیمانه ی 109+710^9 + 7 خروجی دهید.

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

4
1 1 1
Plain text

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

12
Plain text

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

5
1 2 2 3
Plain text

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

11
Plain text

شنکاپ


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

شنگدباو در دوران طفولیت کانتست‌هایی جمع آوری و برگزار می‌کرد و خودش شرکت کننده‌ی اول و آخر این کانتست‌ها بود! بعضی اوقات تعداد معدودی از دوستانش، که معمولاً از دو نفر بیشتر نمی‌شدند، همراه او شرکت می‌کردند. در سری ۱۴۳‌ام از این مسابقات سخت و نفسگیر سؤال زیر مطرح شده بود‌. شما سعی کنید آن را حل کنید:

دو دنباله عدد داریم به طول nn اولی a1,...,ana_1 , ... , a_n و دومی b1,...,bnb_1 , ... , b_n هر سری می‌توانیم یک زیر بازه (عناصر متوالی) از آرایه‌ی اولی انتخاب کنیم و همه‌ی اعدادش را به اضافه‌ی xx (که عددی دلخواه است) کنیم. هدفمان این است که در کمترین تعداد مرحله دو آرایه به پیمانه‌ی ۵ برابر شوند یعنی به ازای هر ii داشته باشیم: ai=bi mod 5a_i = b_i \space mod \space 5

ورودی🔗

در خط اول ورودی عدد nn قرار دارد که اندازه‌ی دنباله است و در خط دوم به ترتیب aia_i ها قرار دارند که با فاصله از همدیگر جدا شده اند. در خط سوم نیز bib_i ها قرار دارند که با فاصله از هم جدا شده اند.

1n106 1 \le n \le 10^6 1ai,bi1091 \le a_i , b_i \le 10^9

خروجی🔗

در خروجی تنها یک عدد برابر کمینه تعداد تغییرات لازم برای انجام این تبدیل خروجی دهید.

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

2
1 2
3 4
Plain text

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

1
Plain text

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

4
1 2 3 4
11 12 13 14
Plain text

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

0
Plain text

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


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

در یک رستوران 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

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