حسنی و نفر از دوستانش دور یک دایره نشستند و شروع به انجام بازی اتلمتل توله میکنند. شیوه انجام بازی این جوری هست که حسنی به عنوان نفر اول میگوید "سلام!". بعد از آن در هر مرحله نفر تا جلوتر نفر قبلی میگوید "سلام!". این روال ادامه دارد تا دوباره نوبت حسنی شود و آن موقع بازی تموم میشود.
حالا حسنی میخواهد بداند که این بازی چند مرحله طول میکشد و از آنجا که خیلی سرگرم بازی شده، از شما میخواهد تا جواب را به او بگویید.
در خط اول ورودی و آمده است.
در تنها خط خروجی تعداد مراحلی را که طول میکشد تا دوباره نوبت حسنی شود را چاپ کنید.
اگر افراد دور دایره را از تا شمارهگذاری کنیم به طوری که حسنی شماره یک را بگیرد طبق چنین روندی دوباره نوبت حسنی میشود:
در این حالت افرادی که سلام میکنند چنین شمارههایی را دارند:
در این حالت نفر تا بعدی حسنی خود حسنی است!
میتوانید شعر زیر را نخوانید و تاثیری در فهم سوال ندارد.
توی ده شلمرود
حسنی تک و تنها بود
حسنی نگو بلا بگو
تنبل تنبلها بگو
موی بلند، روی سیاه
ناخن دراز، واه و واه و واه
نه فلفی، نه قلقلی
نه مرغ زرد کاکلی
هیچکس باهاش رفیق نبود
تنها روی سه پایه، نشسته بود تو سایه
باباش میگفت: حسنی میای بریم حموم؟
«نه نمیام، نه نمیام»
سرت رو میخوای اصلاح کنی؟
«نه نمیخوام، نه نمیخوام»
کره الاغ کدخدا
یورتمه میرفت تو کوچهها
«الاغه چرا یورتمه میری؟»
«دارم میرم بار ببرم
دیرم شده عجله دارم»
«الاغ خوب و نازنین
سر در هوا سم بر زمین
یالت بلند و پرمو
دمت مثال جارو
یک کمی به من سواری میدی؟»
«نه که نمیدم»
«چرا نمیدی؟»
«واسه این که من تمیزم
پیش همه عزیزم اما تو چی؟
موی بلند، روی سیاه
ناخن دراز، واه و واه و واه!»
غازه پرید تو استخر
«تو اردکی یا غازی؟»
«من غاز خوش زبانم»
«میای بریم به بازی؟»
«نه جانم»
«چرا نمیای؟»
«واسه این که من
صبح تا غروب
میون آب، کنار جو
مشغول کار و شستشو
اما تو چی؟
موی بلند، روی سیاه
ناخن دراز، واه و واه و واه»
در وا شد و یه جوجه
دوید و اومد تو کوچه
جیکجیککنان
گردشزنان
اومد و اومد پیش حسنی
«جوجه کوچولو
کوچول موچولو
میای با من بازی کنی؟»
مادرش اومد «قدقدقدا
برو خونتون تو رو به خدا
جوجهی ریزه میزه
ببین چقد تمیزه؟
اما تو چی؟
موی بلند، روی سیاه
ناخن دراز، واه و واه و واه»
حسنی با چشم گریون
پا شد و اومد تو میدون
«آی فلفلی، آی قلقلی
میاین با من بازی کنین؟»
«نه که نمیایم»
«چرا نمیاین؟»
فلفلی گفت:
من و داداشم و بابام و عموم
هفتهای دو بار میریم حموم
اما تو چی؟
قلقلی گفت: نگاش کنین
موی بلند، روی سیاه
ناخن دراز، واه و واه و واه
حسنی دویید پیش باباش
«حسنی میای بریم حموم؟»
«میام، میام»
«سرتو میخوای اصلاح کنی؟»
«میخوام، میخوام»
حسنی نگو یه دسته گل
تر و تمیز و تپل مپل
الاغ و خروس و جوجه غاز و ببعی
با فلفلی با قلقلی با مرغ زرد کاکلی
حلقه زدن دور حسن
الاغه میگفت:
اگر کاری نداری
بریم الاغ سواری
خروسه میگفت:
قوقولی قوقو، قوقولی قوقو
هر چی میخوای، فوری بگو
مرغه میگفت:
حسنی برو تو کوچه
بازی بکن با جوجه
غازه میگفت:
حسنی بیا با همدیگه بریم شنا
توی ده شلمرود
حسنی دیگه تنها نبود!
بعد از این که حسنی تمیز شد و با همه بازی کرد، همه دور هم جمع شدند و از بابای حسنی خواستند که ازشون عکس بگیره. ولی وقتی بابای حسنی اومد، فهمیدند که حداکثر تاشون درون یه عکس جا میشوند. بابای حسنی گفت: «خب حالا عیبی نداره، تا تا بیایید ازتون عکس میگیرم.»
مرغه گفت: «اینطوری که نمیشه، من میخوام با جوجههام توی یه عکس باشم.»
الاغه گفت: «تازه من هم میخوام با خروسه توی یه عکس باشم. اگه اینطوریه، من اصلا عکس نمیگیرم.»
بابای حسنی یه ذره مِنومِن کرد و گفت: «خب عیبی نداره. شما بیایید توی یه صف وایسید، بعد هم تا جایی که جا شدید میآیید توی عکس»
بالاخره اهالی ده شلمرود تصمیم گرفتند که به تا دسته تقسیم بشوند و توی دستهی ام نفر بودند که میخواستند با هم عکس بگیرند. حالا بابای حسنی از شما میپرسد که حداقل باید چند تا عکس بگیرد تا همه در یک عکس افتاده باشند.
در هر عکسی که بابای حسنی میگیرد یک بازه پشت سر هم از دستهها میتوانند حضور داشته باشند که جمع اعضای این بازه باید حداکثر باشد.
در واقع شما یه آرایهی تایی دارید و باید بگید حداقل چقدر هست که بتوان آرایه را به بازه تقسیم کرد که مجموع اعداد هر بازه حداکثر باشد.
توجه کنید که بازه به دنبالهای متوالی از اعضای یک آرایه گفته میشود.
ورودی شامل دو خط است. در خط اول به ترتیب ابتدا تعداد گروهها و سپس حداکثر ظرفیت یک عکس به شما داده میشود.
در خط دوم عدد به شما داده میشود که عدد ام آنها، است.
خروجی برنامه شامل یک عدد صحیح است، حداقل تعداد عکسهایی که پدر حسنی باید بگیرد.
بازهها به صورت خواهند بود. یک جواب دیگر برای این مثال است.
حسنی برای این که در تابستان وقتش را تلف نکند به کسب و کار روی آورده و به تازگی بانکی به نام کناب تاسیس کرده است.
از آنجایی که دوست دارد شما نیز عضو کناب باشید به شما یک پروژه داده و خواسته تا همراهبانکی بنویسید که درخواستهای زیر را اجرا کند.
این درخواست یعنی کاربری با نام کاربری username و آیپی ip به همراهبانک وصل شد و در صورتی که username معتبر نباشد باید عبارت invalid username
را چاپ کنید.
به یک نام کاربری معتبر میگوییم اگر فقط از حروف کوچک و بزرگ انگلیسی و اعداد تشکیل شده باشد.
برای مثال 1aAB2
معتبر است ولی ab*2
معتبر نیست.
این درخواست یعنی کاربری با آیپی ip به حسابی با نام کاربری username به اندازه money پول ریخته است. در واقع باید از حساب ip به اندازه money کم کنید و به حساب username اضافه کنید.
با داده شدن این درخواست مقدار پول داخل حساب فرد با آیپی ip را نمایش دهید.
(دقت کنید که پول هر فرد میتواند منفی هم بشود و هرکس در ابتدا ۰ واحد پول دارد)
در اولین خط ورودی عدد که بیانگر تعداد درخواستها است به شما داده میشود و در خط بعد، در هر خط یک درخواست داده میشود.
در هر درخواست ابتدا type داده میشود که برابر یکی از اعداد ۱ یا ۲ یا ۳ است و اگر برابر با ۱ باشد در ادامه دو رشته ip و username به شما داده میشود که توسط کاراکتر :
از هم جدا شدهاند. اگر
مساوی ۲ باشد سه رشته ip و username و
money
داده میشود که با :
از هم جدا شدهاند و اگر هم مساوی ۳ باشد رشته ip داده میشود.
طول username و ip حداکثر ۱۵ است.
تضمین میشود که:
_
یا *
یا #
یا $
در آن به کار رفته باشد. برای هر درخواست نوع ۱ در صورتی که username معتبر نیست باید عبارت invalid username
را چاپ کنید و برای هر درخواست نوع ۳ باید مقدار پول حساب فرد خواسته شده را چاپ کنید. (پاسخ هر درخواست را در یک خط جدید چاپ کنید.)
توضیحات:
نام کاربری #hacker$user
معتبر نیست برای همین باید invalid username
خروجی بدهید.
از حساب SmsS
هزار واحد پول کم میشود و به حساب faeila
اضافه میشود و حالا SmsS
منفی هزار و faeila
هزار واحد پول دارد.
از حساب faeila
پانصد واحد کم میشود و حالا پانصد واحد پول دارد و SmsS
منفی پانصد.
در کشور(!) شلمرود، شهر وجود دارد که با جاده دوطرفه به هم وصل شدهاند. طول جاده ام هم کیلومتر است. حسنی یک الاغ هم دارد که با استفاده از آن میتواند با سرعت یک کیلومتر بر ساعت جادهها را طی کند.
حسنی جدیدا یک قابلیت جدید پیدا کرده که با استفاده از آن میتواند طول همه جادهها را یک کیلومتر کم کند. حسنی فقط میتواند این قابلیت را وقتی درون یک شهر هست استفاده کند و ساعت طول میکشد که از این قابلیت در راس -ام استفاده کند. همچنین اگر با استفاده از این قابلیت طول یک جاده صفر بشود آن جاده از شلمرود حذف میشود و نمیتوان از آن عبور کرد.
حالا حسنی از شما میپرسد که کمترین زمانی که طول میکشد تا از شهر شماره به شهر شماره برسه چه قدر هست و از آنجا که شما هم حسنی را خیلی دوست دارید باید جوابش را بدهید.
در خط اول ورودی و آمده است. سپس در خط بعدی عدد آمده که عدد -ام را نشان میدهد. در هر یک از خط بعدی هم سه عدد آمده که دو سر جاده و وزن آن جاده را مشخص میکند.
در تنها خط خروجی کمترین زمان برای رسیدن از شهر شماره به شهر شماره را چاپ کنید. در صورتی هم که مسیری از شهر به شهر وجود نداشته باشد -1
چاپ کنید.
در این نمونه وقتی که در شهر یک هستیم بار از قابلیت استفاده میکنیم و بعد از آن طول هر دو جاده یک میشود. بعد از آن میتوان بعد از دو ساعت به شهر شماره سه رسید.
در این مثال بدون استفاده از قابلیت میتوان بعد از ساعت به شهر رسید.
در این نمونه مسیری از شهر به شهر وجود ندارد.
بابای حسنی به حسنی سوالی را داده و به او گفته تا این سوال را حل کند. اما چون حسنی زیاد علاقهای به حل سوال ندارد، از شما خواسته تا این سوال را برای او حل کنید.
آرایهای به نام به طول داریم. میخواهیم بلندترین زیردنبالهای از آرایه را پیدا کنیم که صعودی-نزولی باشد.
حسنی به دنباله صعودی-نزولی میگوید اگر سه شرط زیر برای آن برقرار باشد:
حال شما باید طول بلندترین زیردنبالهای از آرایه که صعودی-نزولی است را پیدا کنید و آن را چاپ کنید.
نکته: به آرایه یک زیردنباله از آرایه میگوییم اگر بتوان با حذف تعدادی عضو از آرایه به آرایه رسید.
در اولین خط ورودی عدد و در خط بعدی عدد امده است که عدد ام مقدار خانه ام آرایه است.
در تنها خط خروجی طول بلندترین زیردنباله صعودی-نزولی را بگویید.
برای مثال دنباله یکی از جوابهای ممکن است.
در این حالت کل آرایه صعودی-نزولی است.
آرایه ، شامل اعداد روی تخته نوشته شده است. در هر گام میتوانیم یکی از دو عملیات زیر را انجام دهیم.
از عملیات نوع دوم حداکثر بار میتوانیم استفاده کنیم.
کمترین تعداد مرحله برای این که در انتها کلا عددی روی تخته باقی نماند، یا تمامی اعداد باقی مانده برابر با باشد، چهقدر است؟
ورودی شامل دو خط است که خط اول آن شامل دو عدد است.
در خط دوم عدد میآید که اعداد اولیه روی تخته را مشخص میکند.
در تنها خط خروجی کمترین مراحل مورد نیاز برای رسیدن به شرایط مطلوب را چاپ کنید.
یکی از روشها این است که ابتدا اعداد و را با عملیات نوع اول به تبدیل کنیم. سپس عدد را به تبدیل کنیم، اعداد روی تخته خواهند بود. در نهایت عدد را پاک کنیم و دنباله تهی میشود. در مجموع عملیات انجام شده است.
در یکی از روشهای بهینه ابتدا عدد را حذف میکنیم، سپس را با عملیات اول به تبدیل میکنیم و نهایتا همه اعداد را با عملیات اول به صفر تبدیل میکنیم.
اگر دنبالهای از اعداد داشته باشید به اولین عدد طبیعیای که در آن ظاهر نشده Mex آن دنباله میگوییم.
برای مثال Mex دنباله برابر و Mex دنباله برابر است.
دنباله به شما داده شده است و باید جمع Mex تمام زیربازههای آن را به دست بیاورید. (در مجموع زیربازه داریم.)
در واقع اگر را برابر Mex زیر دنباله تعریف کنیم، شما باید مقدار زیر را چاپ کنید.
در سطر اول ورودی عدد و در سطر دوم عدد به شما داده میشود که عدد -ام برابر عضو ام دنباله است.
در تنها خط خروجی مقدار خواسته شده را نمایش دهید.
توضیح:
و Mex زیربازههایی که ۱ را ندارند برابر ۱ است.