در شکل زیر ۴ تقاطع وجود دارد که با اعداد ۱ تا ۴ شمارهگذاری شده است.
امین در نقطه شمارهی قرار دارد و میخواهد به نقطه شمارهی در یک حرکت میتواند یک واحد به سمت راست، چپ، بالا و پایین برود.
او میداند اگر از یکی از گوشهها خارج شود، از شکل سقوط میکند و دیگر نمیتواند برگردد.
حال میخواهیم کمینه تعداد حرکت لازم برای رسیدن از نقطهی شمارهی به را محاسبه کنید.
در سطر اول و دوم ورودی، به ترتیب دو عدد صحیح و مثبت و داده میشود که نشاندهندهی شمارهی نقطهی شروع و پایان امین است.
در تنها سطر خروجی، کمینه تعداد حرکت لازم، برای رسیدن از نقطهی شمارهی به نقطهی شمارهی را محاسبه کنید.
برای رسیدن از ۱ به ۲ کافی است در یک حرکت، یک واحد به راست برویم.
برای رسیدن از ۲ به ۳ میتوانیم یک حرکت به چپ انجام بدهیم و از ۲ به ۱ برویم. سپس یک حرکت پایین انجام دهیم و از ۱ به ۳ برسیم. به این ترتیب پاسخ مسئله برابر ۲ خواهد بود.
مبدا و مقصد حرکت یکسان است پس نیازی نیست حرکتی انجام دهیم. بنابراین پاسخ مسئله ۰ است.
برای دیدن یک بازی فوتبال نفر پشت دیوار استادیوم صف کشیدهاند. ارتفاع قد نفر ام در این صف است.
برای اینکه همهی این افراد بتوانند نمای بهتری از زمین بازی داشته باشند، میخواهیم تعدادی جعبه زیر پای این افراد قرار دهیم تا ارتفاعی که روی آن قرار میگیرند بیشتر شود.
هر جعبه باعث میشود که ارتفاع قد یک نفر ۱ واحد افزایش پیدا کند.
زمانی میگوییم عدالت برقرار شده که ارتفاعی که هر دو نفر دارند بازی را تماشا میکنند حداکثر واحد اختلاف داشته باشد.
از شما میخواهیم برنامهای بنویسید که کمترین تعداد جعبه را مشخص کند که با کمک آن میتوانیم عدالت را برقرار کنیم.
در سطر اول ورودی، دو عدد صحیح و مثبت و که با یک فاصله از هم جدا شدهاند، آمده است.
در سطر بعدی، اعداد صحیح که با یک فاصله از هم جدا شدهاند آمده است.
در تنها سطر خروجی، کمترین تعداد جعبه لازم برای برقراری عدالت را چاپ کنید.
یک رشته به طول از حروف کوچک انگلیسی به نام داریم. میخواهیم در عملیات این رشته را خالی کنیم.
در هر عملیات حرفی را حذف میکنیم که رشته فعلی را به رشته الفبایی کوچکتری تبدیل کند. اگر چند حرف چنین کاری را انجام میدهد با سمت راست ترین حرف این کار را میکنیم.
جایگشتی از تا را ارائه دهید که باید عناصر را به آن ترتیب حذف کرد.
در سطر اول ورودی، عدد صحیح و مثبت آمده که تعداد تستهای آمده در ورودی را نشان میدهد.
در سطر بعدی ورودی، در هر سطر رشته که تنها شامل حروف کوچک انگلیسی است، آمده است.
تضمین میشود مجموع طول این رشته از بیشتر نشود.
خروجی در یک سطر جایگشتی را که ترتیب حذف کردن آن در هر مرحله ما را به رشته الفبایی کمینه میرساند، چاپ میکنیم.
تست اول.
بنابراین جایگشتی که باید به آن ترتیب حذف کنیم، است.
تست دوم.
بنابراین جایگشتی که باید به آن ترتیب حذف کنیم، است.
تست سوم.
بنابراین جایگشتی که باید به آن ترتیب حذف کنیم، است.
امین در یک درخت زندگی میکند. این درخت راس دارد. راسهای این درخت با یال به هم متصل شدهاند. طول یال برابر متر است.
امین در راس شماره این درخت زندگی میکند. او میخواهد یک روز برای خرید در این درخت گشتی بزند و سپس به راس بازگردد. او نمیخواهد از یک جاده بیش از دو بار عبور کند.
او میداند که قصد رفتن به راسهای را دارد و در هرکدام از آنها باید یک خرید کیلوگرمی انجام دهد.
همچنین بهازای هر متر که یک خرید کیلویی را حمل میکند. به اندازهی خسته میشود.
حال از شما میخواهیم این گشت امین را طوری برنامهریزی کنید که همهی خریدهایش را انجام دهد و به راس شمارهی ۱ برساند و کمینه خستگی را تحمل کند.
در سطر اول ورودی عدد صحیح و مثبت آمده که تعداد راسهای درخت را نشان میدهد. در سطر بعدی در هر سطر، سه عدد که با یک فاصله از هم جدا شدهاند میآید و بهترتیب نشاندهندهی وجود یال بین راسهای و به طول متر است.
تضمین میشود که ورودی بالا برای یک درخت باشد.
در سطر بعدی عدد آمده که تعداد راسهایی که باید امین در آنها خرید کند را نشان میدهد. در سطر بعدی، در هر سطر دو عدد و آمده که نشان میدهد خریدی در راس دارد که وزن آن برابر است.
ممکن است راسهایی که در آن خرید داریم یکسان باشد ولی باید هر دو خرید را انجام دهیم.
در تنها سطر خروجی، کمینه خستگی ممکن برای این گشت را محاسبه کنید.
دنبالهی سفر خود را به این صورت انتخاب میکنیم:
به این ترتیب «۶ متر خرید ۴ کیلوگرمی»، «۱ متر خرید ۳ کیلوگرمی» و «۲ متر خرید ۱۰ کیلوگرمی» حمل کردیم. بنابراین خستگی این گشت برابر است با:
دنبالهی سفر خود را به این صورت انتخاب میکنیم:
به این ترتیب «۴ متر خرید ۵ کیلوگرمی» حمل کردیم. بنابراین خستگی این گشت برابر است با:
امین برای وبسایت خود یک کپچا طراحی کرده تا جلوی برخی از حملههای سایبری را بگیرد.
او برای راحتی حال کاربران فقط تصویر یکی از حروف بزرگ انگلیسی را نشان میدهد و از کاربران میخواهد که آن حرف را تایپ کنند.
میترا بعد از بررسیهای فراوان، مطمئن شد که:
A
، B
یا C
است.حال میترا برنامهای نوشته که تصویر نمایش داده شده در وبسایت را بهصورت جدول از کاراکترهای .
و #
نمایش میدهد که به ترتیب نشاندهندهی سفید و سیاه بودن آن پیکسل در تصویر است.
به میترا کمک کنید تا برنامهای بنویسید که با دریافت این جدول، بتواند تشخیص دهد که چه حرفی نوشته شده است.
ورودی ۱۰۰ سطر دارد و در هر سطر ۱۰۰ کاراکتر قرار داد. هر کدام از این کاراکترها .
یا #
هستند.
در تنها سطر خروجی، یکی از حروف A
، B
و C
که نشان دهندهی کاراکتر ظاهر شده در تصویر است را چاپ کنید.
شکلهای زیر مثالهای یک پنجم کوچک شده هستند و نیازی نیست برنامهی شما بهازای این ورودیها خروجی درستی بدهد.
میخواهیم سامانهای برای مدیریت کالج طراحی کنیم. در یک کالج ۳ نوع کاربر باید قابل تعریف باشد. «عضو»، «مربی» و «مدیر». هر کدام از این افراد یک نام کاربری شناسایی میشوند.
بالاترین سطح دسترسی به ترتیب متعلق به «مدیر»، «مربی» و «عضو» است.
هر حساب کاربری بعد از ثبت نام در حالت «غیرفعال» است. زمانی یک حساب فعال میشود که یک «مدیر» آن را فعال کند. همچنین مدیران و مربیها نیاز دارند تا لیست کاربرهایی که «غیر فعال» هستند را داشته باشند.
از شما میخواهیم برنامهای بنویسید که درخواستهای زیر را برآورده کند.
فرمت کلی این دستورات به صورت زیر است:
یعنی کاربری با نام <USERNAME>
درخواست عضویت با نقش <ROLE>
را دارد.
INVALID USERNAME
را چاپ کنید.<ROLE>
، هیچکدام از مقدارهای ADMIN
، MENTOR
یا MEMBER
نبود، پیام INVALID ROLE
را چاپ کنید. WAITING FOR ACCEPT
را چاپ کنید.همواره کاربرها بعد از اضافه شدن «غیرفعال» هستند و باید منتظر فعال شدن بمانند.
فرمت کلی این دستورات به صورت زیر است:
یعنی کاربر <USERNAME1>
میخواهد کاربر <USERNAME2>
را به حالت فعال تبدیل کند.
<USERNAME1>
وجود ندارد، پیام INVALID USERNAME
را چاپ کنید.<USERNAME1>
فعال نیست، پیام WAITING FOR ADMIN
را چاپ کنید.<USERNAME1>
نقش ADMIN
ندارد پیام <USERNAME1> IS NOT ADMIN
را چاپ کنید.<USERNAME2>
وجود ندارد، پیام INVALID USERNAME
را اعلام کنید.<USERNAME2>
اکنون فعال است، پیام <USERNAME2> IS ACTIVE
را چاپ کنید.<USERNAME2>
را فعال کنید و پیام <USERNAME2> ACTIVATED
را چاپ کنید.یعنی کاربر <USERNAME1>
میخواهد کاربر <USERNAME2>
را فعال نکند و درخواست عضویت او را پاک کند.
<USERNAME1>
وجود ندارد، پیام INVALID USERNAME
را چاپ کنید.<USERNAME1>
فعال نیست، پیام WAITING FOR ADMIN
را چاپ کنید.<USERNAME1>
نقش ADMIN
ندارد، پیام USERNAME1> IS NOT ADMIN>
را چاپ کنید.<USERNAME2>
وجود ندارد، پیام INVALID USERNAME
را اعلام کنید.<USERNAME2>
اکنون فعال است، پیام USERNAME1> IS ACTIVE>
را چاپ کنید.<USERNAME2>
را از لیست انتظار حذف کنید و پیام <USERNAME2> REJECTED
را چاپ کنید.USERNAME
وجود نداشت، پیام INVALID USERNAME
را چاپ کنید.WAITING FOR ADMIN
را چاپ کنید.MEMBER
داشت، پیام NOT ENOUGH ACCESS
را چاپ کنید.NO USER
را چاپ کنید.<USERNAME1>
یا <USERNAME2>
وجود ندارد، پیام INVALID USERNAME
را چاپ کنید.<USERNAME1>
یا <USERNAME2>
غیرفعال است، پیام WAITING FOR ADMIN
را چاپ کنید.<ROLE>
هیچ کدام از سه نقش گفته شده نبود، پیام INVALID ROLE
را چاپ کنید.<USERNAME1>
پایینتر از <USERNAME2>
است یا هردو نقش یکسانی دارند، NOT ENOUGH ACCESS
را چاپ کنید.<USERNAME1>
میخواهد نقش <USERNAME2>
را به آن تغییر بدهد، بالاتر از نقش خود اوست (مثلاً خود MENTOR
است و میخواهد <USERNAME2>
را به ADMIN
تغییر دهد)، INVALID CHANGEROLE
را چاپ کنید. (تغییر نقش زمانی مجاز است که <USERNAME2>
به نقشی پایینتر یا هم تراز <USERNAME1>
تغییر پیدا کند).ALREADY HAS THIS ROLE
چاپ کنید.USERNAME2
را به ROLE
تغییر دهید و پیام ROLE CHANGED SUCCESSFULLY
را چاپ کنید.نام کاربری، نقش و فعال بودن آن را با این الگو چاپ کنید:
اگر کاربری با نام <USERNAME>
وجود ندارد، پیام INVALID USERNAME
را چاپ کنید.
اگر کاربر فعال است:
username: <USERNAME> role: <ROLE> active
در غیر این صورت:
username: <USERNAME> role: <ROLE> not active
ADMIN
و نقش ADMIN
به صورت فعال در سامانه وجود دارد.در سطر اول ورودی، عدد صحیح و مثبت داده میشود که تعداد دستورها را نشان میدهد.
در سطر بعدی، در هر سطر یکی از دستورهایی که در بالا تعریف شده، داده میشود.
برای هر دستور، خروجی مورد نظر را چاپ کنید. تضمین میشود ورودیها طوری داده شود که مجموع کاراکتر خروجیها از بیشتر نشود.