علی عاشق کدکاپ شده و نمیخواهد بپذیرد که هر مسابقهای یک پایانی دارد! به همین دلیل میخواهد رشته بیپایان را در کدکاپ ۶ بهعنوان یادگاری باقی بگذارد.
رشته یک رشته (از سمت راست) نامتناهی است که از نامتناهی بار اضافه کردن codecup6
به سمت راست یک رشته خالی بدست میآید:
کاراکتر اول این رشته یعنی برابر c
، کاراکتر دوم این رشته یعنی برابر o
، کاراکتر سوم این رشته یعنی برابر d
و... است.
امین که رابطه خوبی با نامتناهیها ندارد عدد صحیح و مثبت را به علی میدهد و مقدار را از او میپرسد. به علی کمک کنید تا به سوال امین پاسخ دهد.
ورودی تنها شامل یک سطر است و در آن عدد صحیح و مثبت آمده است.
در تنها سطر خروجی مقدار که تنها یک کاراکتر است را چاپ کنید.
توجه کنید سیستم داوری به کوچکی و بزرگی حروف حساس است.
c
است.
o
است.
6
است.
c
است.
دیروز دوست باهم به رستوران رفتهاند، آنها خیلی صمیمی هستند و غذاهایی که سفارش میدهند باهم به اشتراک میگذارند پس موقع حساب و کتاب هم خرجهایشان را یکسان بین خودشان تقسیم میکنند.
برای اینکه این حساب و کتابشان را راحت انجام دهند همیشه یکی از این افراد «مادرخرج» میشود؛ یعنی کل هزینهها را به رستوران میدهد و فردای آن روز نفر دیگر خرج آن روز را برای «مادرخرج» واریز میکنند.
اگر فرض کنید کل خرج رستوران تومان باشد. سهم هر کس دقیقاً تومان میشود. پس باید هرکس به جز «مادرخرج» مبلغ به حساب «مادرخرج» واریز کند تا حسابها درست شود.
اما میدانیم انجام یک واریز و انتقال پول هزینهای برای ارسال کننده دارد. در این سوال فرض کنید تومان از حساب واریزکننده بابت کارمزد این واریز کسر خواهد شد.
این موضوع باعث میشود که «مادرخرج» در مجموع هزینه کمتری را پرداخت کند! (چون تومان کمتر از بقیه پرداخت کرده است.)
از شما میخواهیم بگویید هر کس (به جز «مادرخرج») چقدر به حساب «مادرخرج» واریز کند تا پول خرج شده توسط همه این نفر یکسان باشد و یا بگویید انجام چنین کاری امکان پذیر نیست. (فرض کنید همه این نفر به اندازه کافی پول در حسابهایشان دارند.)
توجه کنید هرکس به جز «مادرخارج» دقیقاً یک انتقال پول با مبلغی صحیح و مثبت به حساب «مادرخرج» انجام میدهد و هیچ انتقال پول دیگری بین حساب این نفر مجاز نیست.
همچنین توجه کنید خرج رستوران که توسط «مادرخرج» پرداخت شده هیچ کارمزدی از حساب او کم نمیکند بلکه انتقال بین حساب است که کارمزد دارد.
برای بهتر متوجه شدن خواسته سوال توضیحات نمونه را مطالعه کنید.
در سطر اول ورودی عدد داده میشود. این عدد نشاندهنده تعداد نمونههایی است که باید پاسخ آنها را چاپ کنید.
سپس در سطر بعدی در هر سطر سه عدد صحیح و مثبت و و داده میشود که به ترتیب نشاندهنده تعداد افراد، مجموع هزینههای رستوران و هزینه انجام یک تراکنش برای ارسال کننده است.
توجه کنید این نمونه هیچ ارتباطی به هم ندارند و هر کدام مسئلهای مستقل هستند.
خروجی شامل سطر است و در هر سطر پاسخ یک نمونه چاپ میشود. درصورتی که عدد صحیح و مثبتی مثل وجود دارد که اگر هرکس به جز «مادرخرج»، تومان برای مادرخرج واریز کند، مقدار پول کسر شده از حساب همه یکسان خواهد بود، مقدار و اگر چنین عدد صحیحی وجود ندارد -1
را چاپ کنید.
ابتدا از حساب «مادرخرج» ۲۰۰۰ تومان کسر شدهاست، سپس توسط دو نفر دیگر هر کدام ۶۶۵ تومان به حساب مادرخرج واریز شده است. پس در مجموع کل مبلغ پرداخت شده توسط «مادرخرج» برابر است با:
بقیه افراد هر کدام نفری ۶۶۵ تومان به حساب «مادرخرج» واریز میکنند و ۵ تومان هم کارمزد این واریز را پرداخت میکنند پس مجموع پرداختی این افراد برابر است با: و این عادلانه است چون در مجموع از حساب همه افراد، ۶۷۰ تومان کسر شدهاست.
ابتدا از حساب «مادرخرج» ۲۰۱ تومان کسر شدهاست، سپس توسط فرد دیگر ۱۰۰ تومان به حساب «مادرخرج» واریز شدهاست. پس در مجموع کل مبلغ پرداخت شده توسط «مادرخرج» برابر است با:
فرد دیگر ۱۰۰ تومان به حساب «مادرخرج» واریز میکند و ۱ تومان هم کارمزد این واریز را پرداخت میکند پس مجموع پرداختی این فرد برابر است با: و این عادلانه است چون در مجموع از حساب همه افراد، ۱۰۱ تومان کسر شدهاست.
هیچ مبلغ صحیح و مثبتی نمیتوان برای انجام تراکنش انتخاب کرد.
ابتدا از حساب «مادرخرج» ۳۰ تومان کسر شده است. اگر هر فرد به جز مادر خرج مبلغ ۶ تومان به حساب «مادرخرج» واریز کند. مجموع کل مبلغ پرداخت شده توسط مادر خرج برابر است با: بقیه افراد هر کدام نفری ۶ تومان به حساب «مادرخرج» واریز میکنند و ۱ تومان هم کارمزد این واریز را پرداخت میکنند پس مجموع پرداختی این افراد برابر است با: و این عادلانه نیست چون در مجموع از حساب مادر خرج ۶ تومان کسر شده ولی از حساب بقیه ۷ تومان کسر میشود.
با استدلالهای مشابه میتوانید نتیجه بگیرید که هیچ عدد صحیح و مثبتی برای تسویه حساب به صورت عادلانه وجود ندارد. پس به جای پاسخ مسئله -1
چاپ میکنیم.
اگر فرد به غیر از «مادرخرج» هر مبلغ صحیح و مثبتی به حساب «مادرخرج» واریز کند مجموع پول کسر شده از حساب مادرخرج کمتر از ۱۰۰ تومان و فرد دیگر بیشتر از ۱۰۰ تومان خواهد بود. پس هیچ روشی برای تسویه حساب عادلانه وجود ندارد. پس به جای پاسخ مسئله -1
چاپ میکنیم.
در این نمونه هزینه کارمزد انتقال زیاد است و چون انتقال با مبلغ منفی نداریم (!) هیچ روشی برای تسویه حساب عادلانه نداریم. پس به جای پاسخ مسئله برابر -1
چاپ میکنیم.
علی در شهری نامتناهی زندگی میکند که خیابانهای آن مانند شکل زیر است. شما میتوانید خانه علی که در یکی از تقاطعهای این شهر قرار دارد را در تصویر زیر ببیند.
علی در خانه مانده و حوصلهاش خیلی سررفته و میخواهد در شهر گشتی بزند. گشت زدن علی مرحله دارد. علی در هر مرحله یکی از ۶ جهت که با حروف در شکل نشاندادهایم را انتخاب میکند و از محل تقاطع فعلی در آن جهت حرکت میکند تا به تقاطع بعدی برسد.
پس یک گشت علی را میتوان به صورت یک رشته به طول مثل: نشان داد به طوری که برای هر از ۱ تا :
علی میخواهد برای هر یک از گشتی که انتخاب کرده است، فاصلهی نقطهی پایانی این گشت را با خانه حساب کند.
منظور از فاصله دو تقاطع، یعنی طول کوتاهترین گشتی که بتوان با کمک آن از یک تقاطع به تقاطع دیگر رفت. همچنین فاصله دو تقاطع یکسان را ۰ در نظر میگیریم.
در سطر اول ورودی عدد صحیح و مثبت آمده است. که نشاندهندهی تعداد گشتهایی است که در این ورودی آمده است. در سطر بعدی، در هر سطر یک رشته که تنها شامل حروف است آمده که نشاندهنده یک گشت علی است.
تضمین میشود مجموع طول رشتهها در یک ورودی از ۱۰۰,۰۰۰ بیشتر نشود.
خروجی شامل سطر است که در هر سطر یک عدد صحیح و نامنفی، که نشاندهنده فاصله تقاطع نهایی علی بعد از انجام آن گشت تا تقاطعی که خانه علی در آن قرار دارد است.
شکل حرکت علی در گشت اول.
شکل حرکت علی در گشت دوم.
شکل حرکت علی در گشت سوم.
یک دنباله از اعداد صحیح و دو عدد صحیح و مثبت و داریم () و از روی آن دنباله را میسازیم.
ابتدا دنباله خالی است و بهعنوان اولین عنصر این دنباله را در آن قرار میدهیم. سپس تا زمانی که تعداد اعداد موجود در دنباله برابر نشده است، اگر سمت راست ترین عددی که به دنباله اضافه کردیم برابر بوده است عدد را به سمت راست دنباله اضافه میکنیم.
برای مثال فرض کنید دنباله برابر
و و باشد، دنباله در نهایت برابر خواهد بود.
حال دنباله و مقدار گمشده است و فقط مقدار و دنباله نهایی را داریم. از شما میخواهیم کمترین طول ممکن برای دنباله که بشود با انتخاب یک مناسب به این دنباله رسید را بیاید و دنباله را پیدا کنید.
اگر چند دنباله با کمترین طول وجود دارد یکی از جوابها را به دلخواه چاپ کنید.
در سطر اول ورودی عدد صحیح و مثبت آمده که تعداد تستهای نمونهای که به شما داده میشود را نشان میدهد. سپس برای هر تست در یک سطر عدد صحیح ، در سطر بعدی عدد صحیح که با فاصله از هم جدا شدهاند، آمده است.
تضمین میشود مجموع برای همه دنبالههایی که در این تست به شما داده میشود از ۱۰۰,۰۰۰ بیشتر نمیشود.
برای هر کدام از این تست در یک سطر کمترین طول ممکن برای دنباله و در سطر بعدی دنباله ای با همان طول که اعضای آن با فاصله جدا شده است را چاپ کنید.
اگر چندین جواب برای یک مسئله وجود دارد یکی را به دلخواه چاپ کنید.
توضیح نمونه اول.
توضیح این نمونه در متن سوال آمده است.
توضیح نمونه دوم.
کافی است دنباله را به صورت و مقدار باشد تا دنباله ورودی داده شده ساخته شود.
توضیح نمونه سوم.
کافی است دنباله را به صورت و مقدار باشد تا دنباله ورودی داده شده ساخته شود.
مارچلو که از سپری کردن تابستان خود در یک مسافرت رویایی داشت نهایت لذت را میبرد، تصمیم گرفت که ورزشی را به طور حرفهای شروع کند و چه ورزشی بهتر از پرش با دنباله!
مارچلو دو دنبالهی تایی از اعداد صحیح دارد که عضو اُم دو دنباله را به ترتیب با و نشان میدهیم. او میخواهد ابتدا دنبالهی پرشهای خود را بدست بیاورد و سپس اقدام به پرش کند.
دنبالهی را یک دنبالهی پرش میگوییم، اگر:
به دنبالهی پرش یک دنبالهی پرش معتبر میگوییم، اگر:
مارچلو که سخت عزم خود را برای حرفهای شدن در این ورزش جزم کرده بود، از شما میخواهد که بلندترین دنبالهی پرش معتبر در دو دنبالهی داده شده را به او گزارش دهید، تا طبق آن پرشهای خود را انجام دهد.
ورودی شامل سه خط است که در خط اول، عدد طبیعی آمده است و در خط دوم عدد با فاصله از هم آمده است که عدد اُم نشاندهندهی است. در خط سوم نیز عدد با فاصله از هم آمده است که عدد اُم، نشاندهندهی است. تضمین میشود ها متمایز هستند.
در تنها خط خروجی، طول بلندترین دنبالهی پرش معتبر را چاپ کنید.
دنبالهی بلندترین دنبالهی پرش معتبر است.
دنبالهی بلندترین دنبالهی پرش معتبر است.
امین میخواهد در یک امتحان شرکت کند او کلمه مختلف را باید حفظ کند این کلمات همگی به طول هستند. امین که آدم تنبلی است به جای حفظ کردن این کلمات تصمیم به یادداشت کردن آنها و تقلب دارد.
امین برای تقلب سبک خودش را دارد. او میخواهد کاراکتر دور یک دایره بنویسید به طوری که همهی کلمهای که باید حفظ میکرد را بتوان با شروع از یکی از این کاراکتر و حرکت در جهت ساعتگرد و یادداشت کردن کارکتر پشت هم به دست آورد.
توجه کنید ترتیب ظاهر شدن کلمهها دور دایره اهمیتی ندارد و میتوانند به هر ترتیبی ظاهر شوند اما این کلمه لزوماً متمایز نیستند و اگر یک کلمه بار در ورودی ظاهر شود باید دور دایره نیز دقیقاً بار دیده شود.
به امین کمک کنید تا این ترتیب از کاراکتر را بدست آورد. اگر چند ترتیب وجود دارد یکی از آنها را به دلخواه چاپ کنید. همچنین اگر انجام چنین کاری ممکن نیست این خبر بد را با چاپ کردن -1
مشخص کنید.
در خط اول ورودی به شما دو عدد صحیح و داده میشود. در خط بعدی هر کدام یک رشته به طول داده میشود. همگی این رشته ها از حروف کوچک انگلیسی تشکیل شدهاند.
در تنها سطر خروجی یک رشته به طول که پاسخ مسئله است را چاپ کنید. ترتیب رشته از چپ به راست ساعتگرد است. اگر پاسخی برای مسئله وجود ندارد در تنها سطر خروجی -1
را چاپ کنید.
گراف یک گراف ساده و بدون جهت است. شامل راس و یال است. فرض کنید یالهای به ترتیب ورودی مسئله
باشند.
از شما میخواهیم برای بازه و بررسی کنید آیا اجتماع یالهای این بازه تشکیل یک زیردرخت برای میدهد یا نه. به عبارت دیگر اجتماع تشکیل یک زیردرخت برای میدهد یا نه.
توجه کنید یک زیردرخت از یک زیرمجموعه از یالهای است که تشکیل یک گراف همبند بدون دور را بدهد. (نیازی نیست که این زیردرخت فراگیر باشد و شامل همه راسهای باشد.)
در سطر اول ورودی دو عدد صحیح و مثبت و با یک فاصله آمده است که به ترتیب نشاندهنده تعداد راسها و تعداد یالهای گراف است.
در سطر بعدی در هر سطر دو عدد صحیح و مثبت و با یک فاصله آمده است که نشاندهندهی یال ام گراف یعنی است.
تضمین میشود هیچ یالی دوبار ورودی داده نمیشود و گراف داده شده در ورودی یک گراف ساده (نه لزوماً همبند) خواهد بود.
در سطر بعدی تنها یک عدد صحیح و مثبت آمده است که تعداد سوالاتی را نشان میدهد.
در سطر بعدی در هر سطر دو عدد صحیح و مثبت و آمده است که بازه مورد نظر در سوال ام را نشان میدهد.
خروجی شامل سطر است و در سطر ام آن اگر زیرگراف متناظر با بازهی ام مورد سوال، درخت بود کلمه YES
و در غیر این صورت کلمه NO
را چاپ کنید.