کادو


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

سروش در ابتدای صف ورود به سالن سینما، منتظر یکی از دوستانش است. دوست سروش در انتهای صف ایستاده و به دنبال او می‌گردد. به جز سروش و دوست او، nn نفر دیگر در صف، بین آن دو، ایستاده‌اند که از ابتدای صف به ترتیب با شماره‌های ۱ تا nn شماره‌گذاری شده‌اند.

با توجه به اینکه تمام این افراد صرفاً برای گذراندن وقت به سینما آمده بودند، تصمیم گرفتند به جای دیدن فیلم، کاری کنند که سروش و دوستش نتوانند یک‌دیگر را ببینند.

در هر لحظه تمامی افراد درون صف در یک جهت نگاه می‌کنند. جهت نگاه تمامی افراد در هر ثانیه یا به سمت سروش و ابتدای صف است و یا به سمت دوست او و انتهای صف. در هر ثانیه هر فرد اگر در راستایی که نگاه می‌کند، فرد دیگری که در حال حاضر از او اکیداً بلندتر باشد ببیند، قدش را به اندازه‌ی یک سانتی‌متر افزایش می‌دهد.

علی به مدت mm ثانیه این صحنه را نگاه می‌کند و به ازای هر یک از ثانیه‌ها جهت نگاه افراد را یادداشت می‌کند. به عبارت دقیق‌تر او به ازای هر عملیات یک حرف انگلیسی یادداشت می‌کند که اگر برابر L باشد افراد در ثانیه‌ی ii ام به سمت سروش و ابتدای صف نگاه می‌کنند و در صورتی که برابر R باشد، افراد در این ثانیه به سمت دوست سروش و انتهای صف نگاه می‌کنند.

او قد تمامی nn نفر را پیش از شروع عملیات‌های گفته شده، می‌داند. به عبارت دقیق‌تر، او می‌داند که قد نفر ii ام پیش از شروع عملیات‌ها hih_i سانتی‌متر است. برنامه‌ای بنویسید که با داشتن قد ابتدایی و جهت نگاه افراد در هر ثانیه، قد نهایی هر فرد را محاسبه کند.

ورودی🔗

در خط اول ورودی دو عدد طبیعی nn، تعداد افراد درون صف، و mm، تعداد ثانیه‌هایی که علی عملیات گفته شده را مشاهده کرده، آمده است.

در خط دوم ورودی nn عدد h1,h2,,hnh_1, h_2, \ldots, h_n آمده است که قد ابتدایی افراد را نشان می‌دهند.

در خط سوم ورودی یک رشته‌ی به طول mm از حروف ‌R و L آمده است که حرف iiام این رشته، حرف نوشته‌ شده در ثانیه iiام را نشان می‌دهد.

خروجی🔗

در تنها خط خروجی nn عدد چاپ کنید که عدد iiام قد نهایی فرد iiام را نشان می‌دهد.

1n,m200 000 1 \le n, m \le 200 \ 000 0hi109 0 \le h_i \le 10^9

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۱۰۰ بدون محدودیت اضافی

مثال🔗

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

5 2
1 3 1 3 1
RL
Plain text

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

2 3 3 3 2
Plain text

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

5 4
5 4 3 2 1
LLRL
Plain text

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

5 5 5 5 4
Plain text

پوکمون‌گو


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

بازی Pokemon Go در مدت کوتاهی به محبوب‌ترین بازی کشور هکر‌ها تبدیل شده است! با اینکه هکرها به Pokemon Go بسیار علاقه دارند اما همچنان جذاب‌ترین کار برای آن‌ها هک کردن است. ولادمیر لوین (Vladimir Levin)، یکی از خطرناک‌ترین هکر‌های شهر، تعدادی از سرور‌های Pokemon Go را هک کرده و برنامه‌ی تلفن همراه XPokemon را نوشته است که یکی از قابلیت‌های آن اعلام فاصله‌ی دورترین PokeStop از مکان فعلی شخص است. لازم به ذکر است که در کشور هکر‌ها، شهرها و جاده‌های بین آن‌ها‌ تشکیل یک درخت می‌دهند و PokeStop ها همواره در داخل شهر‌ها قرار دارند.

کوین میتنیک (Kevin Mitnick)، رقیب قدیمی ولادیمیر، در جدید ترین پروژه‌ی خود موفق به هک کردن تلفن‌های همراه ساکنین برخی از شهر‌ها شده است. کوین از طریق این تلفن‌های همراه هک شده به خروجی برنامه Xpokemon دست یافته و می‌خواهد مکان PokeStop ها را بیابد.

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

ورودی🔗

در خط اول ورودی، دو عدد nn و qq آمده است که به ترتیب تعداد کل شهر‌‌ها و تعداد شهر‌هایی که کوین موفق به هک کردن تلفن‌های همراه ساکنین آن شده است را نشان می‌دهند.

در هر یک از n1n-1 خط بعدی در هر خط دو عدد طبیعی vv و uu آمده است که نشان‌دهنده‌ی وجود یک جاده بین این دو شهر است.

در هر یک از qq خط بعدی دو عدد vv و dd آمده است که نشان می‌دهد فاصله دورترین PokeStop از شهر vv برابر dd است. تضمین می‌شود گراف ورودی درخت است و به ازای هر شهر حداکثر یک بار اطلاعات داده می‌شود.

1qn200 000 1 \le q \le n \le 200 \ 000

خروجی🔗

در صورتی که هیچ حدس معتبری وجود ندارد، در تنها خط خروجی عدد 1-1 را چاپ کنید.

در غیر این‌ صورت، در تنها خط خروجی حدس خود که شامل یک رشته‌ی nn حرفی از 0 و 1 می‌شود را چاپ کنید. 0 بودن حرف ‌iiام رشته به این معناست که در شهر iiام PokeStop ای وجود ندارد و 1 بودن آن به این معناست که در شهر iiام PokeStop وجود دارد. در صورتی که چند جواب برای ورودی داده شده وجود دارد می‌توانید هر کدام را که خواستید چاپ کنید.

زیرمسئله‌ها🔗

زیرمسئله شماره‌ی تست‌ها نمره محدودیت
۱ ۱ تا ۱۱ ۱۰ n15 n \le 15
۲ ۱۲ تا ۲۴ ۲۰ n200 n \le 200
۳ ۲۵ تا ۳۴ ۲۵ n=q n = q
۴ ۳۵ تا ۶۴ ۴۵ بدون محدودیت اضافی

مثال🔗

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

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

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

01111
Plain text

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

3 3
1 2
2 3
1 0
2 1
3 0
Plain text

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

-1
Plain text

سلری


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

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

«آقای میسیک»، صاحب نانوایی سلری، که از دوستان قدیمی ریک و مورتی است، امروز دست‌تنها است و مشتری‌های زیادی در صف نانوایی منتظر نان‌شان هستند. او با دیدن ریک و مورتی بسیار خوش‌حال می‌شود و از آن‌ها می‌خواهد در امر خطیر نان‌پزی کمکش کنند. آن‌ها به این شکل تقسیم وظیفه می‌کنند که ریک و آقای میسیک نان‌ها را بپزند و مورتی نان‌ها را بین مشتری‌ها پخش کند.

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

آقای میسیک و ریک با کمک یک‌دیگر می‌توانند با سرعت یک نان بر ثانیه نان بپزند. از طرفی، هر مشتری یک میزان حوصله‌ای دارد که برای مشتری jj ام در صف ii ام آن را با pi,jp_{i,j} نشان می‌دهیم. در صورتی که این مشتری تا pi,jp_{i,j} ثانیه بعد از شروع به کار ریک و مورتی نان نخرد، نانوایی را به آتش می‌کشد.

توضیح تصویر

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

ورودی🔗

در خط اول ورودی nn، تعداد صف‌های نانوایی، آمده است.

در nn خط بعدی در هر خط ابتدا یک عدد طبیعی lil_i آمده است که نشان‌دهنده‌ی طول صف ii ام است. در ادامه‌ی خط ii ام، lil_i عدد طبیعی آمده است که نشان‌دهنده‌ی pi,1,pi,2,...,pi,lip_{i,1}, p_{i,2}, ..., p_{i,l_i}، میزان حوصله‌ی مشتری‌های صف ii است.

1ni=1nli100 000 1 \le n \le \sum_{i=1}^n{l_i} \le 100 \ 000 1pi,j109 1 \le p_{i,j} \le 10^9

خروجی🔗

در تنها خط خروجی بیشترین تعداد مشتری‌هایی که مورتی می‌تواند به آن‌ها نان بفروشد را چاپ کنید.

زیرمسئله‌ها🔗

زیرمسئله شماره‌ی تست‌ها نمره محدودیت
۱ ۱ تا ۱۷ ۱۰ i=1nli10 \sum_{i=1}^n{l_i} \le 10
۲ ۱۸ تا ۳۵ ۲۰ i=1nli1000,n2 \sum_{i=1}^n{l_i} \le 1000 ,n\le2
۳ ۳۶ تا ۸۵ ۷۰ بدون محدودیت اضافی

مثال🔗

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

2
1 1
2 9 2
Plain text

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

2
Plain text

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

3
2 1 2
2 3 5
1 4
Plain text

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

5
Plain text

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

3
1 3
1 4
2 5 2
Plain text

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

4
Plain text