هوپ


در یک بازی هوپ، nn بازیکن با شماره های 11 تا nn در حال بازی کردن هستند. به اینصورت که نفر اول از 11 شروع می‌کند و نفر بعدی عدد 22 و به همین ترتیب و بازی تا عدد mm ادامه پیدا میکند. اما بجای اعدادی که مضرب 33 و 77 هستند هوپ گفته می‌شود. برنامه‌ای بنویسید که در خط اول nn را از کاربر گرفته و در خط بعدی mm که آخرین عدد بازی است را نیز از کاربر دریافت کند. سپس در mmخط بعدی اعدادی که بازیکنان می‌گویند را دریافت کند و اگر بازیکنی اشتباه بازی کرد، به ازای هربار اشتباهش، در خروجی در یک سطر جداگانه شماره‌اش را چاپ کند.

  • بجای هوپ 0 وارد می‌شود.
  • اگر یک بازیکن اشتباه بازی کرد، نفر بعدی باید حالت درست را در نظر بگیرد و ادامه دهد نه از عدد اشتباه نفر قبل. مثلا اگر بجای عدد 1010 بازیکنی گفت 1111 نفر بعد فرض می‌کند قبلی درست بازی کرده و بازی را از 1010 ادامه می‌دهد و باید بگوید 1111.

مثال🔗

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

3
3
1
2
3
Plain text

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

3
Plain text

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

3
9
1
2
0
4
4
6
0
7
0
Plain text

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

2
3
2
Plain text

اعداد حلقوی


عدد اول حلقوی به عدد اولی گفته می شود که تمام اعدادی که از شیفت دادن ارقام این عدد به دست می آیند، نیز اول باشند. به طول مثال 11931193 عدد اول حلقوی است، زیرا 11931193 ،31193119 ،93119311 و 19311931 همگی اعداد اول هستند. برنامه ای بنویسید که تعداد نامشخصی عدد از ورودی بخواند و برای هر عدد، اگر اول حلقوی بود عبارت circular prime و در غیر این صورت عبارت non-circular prime را چاپ کند. شرط پایان ورود اطلاعات وارد کردن عدد 0 است.

محدودیت‌ها🔗

1n100000001 \leq n \leq 10000000

مثال🔗

نمونه ورودی🔗

97
123
1193
29
0
Plain text

نمونه خروجی🔗

circular prime
non-circular prime
circular prime 
non-circular prime
Plain text

فامیل، خشن اما مهربان


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

ورودی برنامه🔗

برنامه شما باید در خط اول nn که تعداد جنایتکاران است را بگیرد. در خط دوم mm که تعداد تیراندازها است را بگیرد و در mm خط بعدی، بازه‌ی تیراندازی فرد تیرانداز را بگیرد. سپس kk که تعداد دکترها است را می‌گیرد و در kk خط بعدی، بازه‌ی درمان هر دکتر را بگیرد.

خروجی برنامه🔗

مکان ایستادن همه‌ی جنایتکارهای که زنده هستند در یک خط چاپ شوند.

  • شماره گذاری مکان ایستادن جنایتکاران از 00 تا n1n-1 میباشد.

مثال🔗

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

4
2
0 1
2 3
1
2 3
Plain text

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

2 3
Plain text

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

6
2
0 1
3 4
2
0 2
4 5
Plain text

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

0 1 2 4 5
Plain text

جشن هدیه‌ها


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

حال شما برنامه‌ای بنویسید که پس از گرفتن اسامی شرکت کنندگان، مقدار پول اولیه‌ی هر کدام و لیست هدیه هر کس، مشخص کند که هرکسی چقدر سود یا زیان کرده است!

ورودی🔗

  • خط 11 : عدد nn که برابر است با تعداد شرکت کنندگان در جشن.
  • خط 22 تا n+1n+1 : در هر خط اسم یکی از شرکت کنندگان.
  • خط n+1n+1 الی آخر : از این خط به بعد ورودی به nn دسته تقسیم می‌شود که هرکدام مطابق زیر است: خط اول نام فردی که قرار است هدیه بدهد. در خط دوم دو عدد می‌آید: عدد اول مقدار پول آن فرد، عدد دوم kk تعداد افراد موجود در لیست هدیه‌ی آن فرد در kk خط بعدی در هر خط نام یکی از افراد موجود در لیست هدیه‌ی آن فرد.

می‌توانید فرض کنید نام هر دو نفر از افراد شرکت‌کننده در جشن متمایز است و 2n102 \leq n \leq 10

خروجی🔗

در خروجی باید nn خط چاپ کنید که در هر ابتدای هر خط نام هر شخص و بعد از آن مقدار سود او آورده شود. (اگر آن شخص ضرر کرده است، باید منفی مقدار ضرر چاپ شود.) ترتیب نام‌ها در خروجی باید مانند ترتیب نام‌ها در خطوط 22 تا n+1n+1 ورودی باشد.

مثال🔗

نمونه ورودی🔗

5
dave
laura
owen
vick
amr
dave
200 3
laura
owen
vick
owen
500 1
dave
amr
150 2
vick
owen
laura
0 2
amr
vick
vick
0 0
Plain text

نمونه خروجی🔗

dave 302
laura 66
owen -359
vick 141
amr -150
Plain text

آبیاری نوین


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

ورودی🔗

در خط اول ورودی تعداد درختان (nn) به شما داده می شود. در nn خط بعدی در هر خط دو عدد xix_i و yiy_i آمده است که مختصات درخت ii ام را نشان می دهد.

خروجی🔗

شما باید کمترین متراژ لوله مورد نیاز برای آبیاری همه‌ی درختان را تا دو رقم اعشار در خروجی چاپ کنید.

محدودیت‌ها🔗

مختصات هر درخت تا دو رقم اعشار داده می‌شود. 1n10001 \leq n \leq 1000

مثال🔗

نمونه ورودی🔗

5
1.00 0.00
2.00 1.00
1.00 2.00
-1.00 2.00
-2.00 0.00
Plain text

نمونه خروجی🔗

7.83
Plain text

پروژه زبان


حسام عاشق الفباست. همیشه دوست دارد همه چیز را به صورت الفبایی مرتب کند. علی بر عکس حسام است. همیشه دوست دارد همه چیز به صورت نامرتب باشد. آن ها برای پروژه پایانی درس زبان آماده می شوند. معلم از آنها خواسته است که یک سری لغت را از دیکشنری پیدا کنند و در یک جدول بنویسند. علی و حسام هم گروهی شده اند. از این رو آن ها در نوشتن ترتیب کلمات دچار اختلاف نظر شده اند. حسام می خواهد کلمات به صورت نزولی مرتب باشند. علی می گوید کلمات باید نامنظم باشند. آن ها از دوست خود امیر کمک خواستند. امیر برای حل این مشکل راه حل تازه ای به آنها پیشنهاد داد. قرار شد علی نظم حروف الفبا را مشخص کند. سپس حسام براساس این الفبای جدید, کلمات را مرتب کند.

ورودی🔗

خط اول شامل ۲۶ حرف الفبای علی است. این حروف به ترتیب و بدون فاصله در کنار هم قرار گرفته اند. به صورت زیر :‌Ci<Ci+1 C_i < C_{i+1} خط دوم شامل یک عدد nn است. nn خط بعدی شامل کلماتی است که باید مرتب شوند. n<100000 n < 100000 تمامی لغات شامل حروف کوچک الفبای انگلیسی می باشند.

خروجی🔗

خروجی شامل کلمات مرتب شده (به صورت نزولی) می باشد. هر خط شامل یک کلمه می باشد.

مثال🔗

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

abcdefghijklmnopqrstuvwxyz
5
apple
app
stable
waste
five
Plain text

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

waste
stable
five
apple
app
Plain text

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

zyxwvutsrqponmlkjihgfedcba
5
apple
app
stable
waste
five
Plain text

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

apple
app
five
stable
waste
Plain text

رمز‌نگاری


عده‌ای جاسوس در دانشگاه مستقر شده‌اند!! آن‌ها برای ارتباط با همدیگر از جدول‌های حروف استفاده می‌کنند. این جدول‌ها یک مستطیل nmn*m هستند که در هر خانه‌شان فقط یک حرف قرار دارد. در هر جدول پیامی نهفته است که باید پیدا شود! با کمک حراست دانشگاه جدول های رمز جاسوس‌ها پیدا شده، ولی مشکلی وجود دارد؛ کسی باید این جدول‌ها را رمزگشایی کند! مسئولین دانشگاه از شما کمک خواسته‌اند! برای پیدا کردن رمز موجود در هر جدول به این ترتیب عمل می‌کنیم: حروف تکراری در سطر و ستون ها باید حذف شوند. به بیان دیگر یک حرف خط می‌خورد، اگر و فقط اگر در سطر و یا ستون متناظر آن، حداقل یک حرف دقیقا یکسان با آن حرف وجود داشته باشد. در این صورت همه‌ی این حروف در آن سطر و ستون هم‌زمان خط می‌خورند. وقتی همه‌ی حروف تکراری خط خوردند از گوشه‌ی بالا سمت چپ به ترتیب حروف را در یک رشته قرار می‌دهیم. رشته‌ی به دست آمده رمز نهفته در جدول است!

ورودی🔗

در خط اول دو عدد mm و nn داده می‌شود، هر کدام از nn خط بعدی حاوی mm کاراکتر لاتین هستند.

محدودیت‌ها🔗

1n,m1001 \leq n,m \leq 100

خروجی🔗

رمز حاصل را در یک خط مجزا چاپ کنید. (تضمین می شود که رمز حداقل یک حرف دارد)

مثال🔗

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

3 3
cba
bcd
cbc
Plain text

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

abcd
Plain text

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

5 5
fsjeh
ooeeo
ffaoa
aoeoj
rijfj
Plain text

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

sharif
Plain text

تقاطع


یک تقاطع با nn خیابان منتهی به آن داریم. می خواهیم بوسیله یک چراغ راهنمای چندزمانه، بار ترافیکی این تقاطع را مدیریت کنیم. برای هر دو خیابان yy ، xx منتهی به این تقاطع، لازم است در دست کم یکی از زمان های این چراغ راهنما، امکان عبور امن بین yy ،xx وجود داشته باشد. عبور امن عبوری است که در آن اجازه عبور از خیابانی مثل zz به خیابانی مثل tt که عبور همزمان خودرو از آن منجر به تصادف با خودروی عبوری از yy ، xx می‌شود، داده نشده باشد. دقت کنید که خیابان‌های منتهی به چهارراه دوطرفه هستند، بنابراین عبور از x به y معادل عبور از yy به xx نیست. برنامه ای بنویسید که حداقل تعداد زمان های این چراغ راهنما را محاسبه کند.

ورودی🔗

در خط اول، ورودی شامل (nn) تعداد خیابان ها و (mm) تعداد عبورهای حادثه ساز است.
ورودی با mm خط دنبال می‌شود که در هر خط ۴ عدد tt ،zz ، yy ،xx داده خواهد شد؛ بدین معنی که اگر همزمان بین دو خیابان yy،xx و دو خیابان tt ،zz عبور انجام گیرد، حادثه ساز خواهد بود.

خروجی🔗

در تنها سطر خروجی، حداقل تعداد زمان های این چراغ را چاپ کنید.

محدودیت‌ها🔗

n12n \leq 12 m1000m \leq 1000

مثال🔗

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

4 1
1 3 2 4
Plain text

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

2
Plain text

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

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

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

2
Plain text

مترجم متن


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

توجه کنید که با توجه به دانش پایین دانش‌آموزان در زبان لاتین، جملاتی که این معلم دلسوز برای شاگردانش انتخاب کرده‌است بسیار ساده بوده و از قالب و کلمات محدودی پیروی می‌کنند که در پایین به آن‌ها اشاره می‌کنیم.

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

هر جمله‌ی ورودی یک جمله‌ی سه کلمه‌ای انگلیسی است که کلمه‌ی اول آن نهاد، کلمه‌ی دوم فعل و کلمه‌ی سوم صفت است. به عبارت دیگر رشته‌ی ورودی صحیح به صورت [صفت] [فعل] [نهاد] است و با نقطه تمام می‌شود. هر رشته‌ی خروجی یک جمله‌ی سه کلمه‌ای فینگلیش است که کلمه‌ی اول آن نهاد، کلمه‌ی دوم صفت و کلمه‌ی سوم فعل است. به عبارت دیگر قالب هر جمله‌ی خروجی به صورت [فعل] [صفت] [نهاد] است که با نقطه تمام می‌شود.

کلماتی که مترجم در هر جایگاه می‌شناسد در جداول زیر آمده‌اند.

کلماتی که در جایگاه نهاد باید ترجمه شوند:🔗

Translate Subject
Man I
Shoma You
Ma We
Anha They
Oo She
Oo He

کلماتی که در جایگاه فعل باید ترجمه شوند:🔗

مورد نظر برای ترجمه در جدول زیر لیست شده‌­اند:

Translate if Verb
ast ------ is
hastam ------ am
hastid Subject is You are
hastand Subject is They are
hastim Subject is We are
hast… Subject is not You or They or We are
  • توجه شود که برای ترجمه‌ی فعل باید به نهاد توجه کرد تا صرف فعل درست باشد.

کلماتی که در جایگاه صفت باید ترجمه شوند:🔗

Translate Adjective
nadan stupid
aali excellent
mobtadi noob
khafan geek
daneshju student
ostad professor

به نکات زیر توجه کنید:

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

قالب ورودی🔗

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

قالب خروجی🔗

در صورتی که ورودی به قالب خواسته‌شده (سه کلمه‌ای با نقطه‌ی پایانی) باشد، ترجمه انجام می شود و جمله‌ی حاصل از ترجمه به عنوان خروجی داده می‌شود. در غیر این صورت عبارت !Not Supported Yet به عنوان خروجی چاپ می‌شود. توجه داشته باشید که در هر خط یک خروجی چاپ می‌شود.

نمونه ورودی🔗

7
I am Student.
you are exCellenT.
He is so noob.
She is geek
He was old.
Felani is hungry.
b y e.
Plain text

نمونه خروجی🔗

Man daneshju hastam.
you aali hast....
Not Supported Yet!
Not Supported Yet!
He was old.
Felani hungry ast.
b y e.
Plain text

کارخانه‌ی شکلات‌سازی


شکلات تخته ای یک مستطیل با mm سطر و nn ستون است که با خانه های 111*1 شکلات پر شده است. رییس کارخانه شکلات‌سازی به تازگی متوجه شده است که در kk خانه شکلات‌هایش باکتری رشد کرده است. مهندسین اپتیک لیزرهایی ساخته‌اند‌ با این ویژگی که اگر نور حداقل یک لیزر به باکتری‌ها بخورد، آن باکتری‌ها جان به جان آفرین تسلیم می کنند! رئیس کارخانه می خواهد لیزرها را در سطرها و یا ستون‌ها به صورت عمودی یا افقی قرار دهد به طوری که شکلات‌ها‌ را از باکتری‌ها‌ پاک‌سازی کند. چون هزینه خرید هر لیزر زیاد است از شما برنامه‌نویسان مجرب (!) کمک می خواهد که کمترین تعداد لیزرهای مورد نیاز را پیدا کند. ابتدا mm تعداد سطرها و nn تعداد ستون های شکلات به شما داده می شود. در خط بعدی عدد kk داده می شود. در kk خط بعدی در هر خط دو عدد داده می شود که عدد اول شماره سطر و عدد دوم شماره ستون خانه آلوده است. در تنها خط خروجی باید حداقل تعداد لیزرهای مورد نیاز را چاپ کنید.

محدودیت‌ها🔗

m,n1000m,n \leq 1000 k50000k \leq 50000

مثال🔗

نمونه ورودی🔗

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

نمونه خروجی🔗

2
Plain text