+ محدودیت زمان: ۲۵۶ میلیثانیه
+ محدودیت حافظه: ۱ مگابایت
----------
در یکی از سیارات منظومه آلفا قنطورس (Alpha Centauri - نزدیکترین منظومه ستارهای به منظومه شمسی)، موجودات عجیب و غریبی زندگی میکنند و هرکدام از آنها تعداد انگشتان دستش با بقیه فرق دارد. بعضی از آنها مانند ما ده انگشت در دو دست خود دارند و بعضی دیگر، ۱۶ انگشت، بعضی ۲ انگشت، بعضی ۶ انگشت و... به همین علت در این سیاره مدارس مختلفی برای موجودات مختلف وجود دارد و در هر مدرسه، اعداد با مبنای متفاوتی به بچهها آموزش داده میشوند.
کیانوش که یکی از ساکنین این سیاره است و ۱۰ انگشت دارد، به برنامهنویسی علاقه بسیاری دارد، او میخواهد برنامهای بنویسد که یک عدد را در مبنای ۱۰ بگیرد و آن را به مبنای خواسته شده ببرد. به او کمک کنید تا این مسئله برنامهنویسی را حل کند.
# ورودی
ورودی شامل دو عدد $n$ و $b$ است که دز يك خط به شما داده شده است. $n$ عدد مدنظر در مبنای ۱۰ و $b$ مبنای خواسته شده است.
$$0 \leq n \leq 2^{31}-1$$
$$2 \leq b \leq 16$$
# خروجی
در خروجی باید عدد $n$ را در مبنای $b$ چاپ کنید. توجه کنید که برای مبنای بزرگتر از ۱۰، برای نمایش رقمهایی نظیر ۱۰، ۱۱ و... از حروف انگلیسی B،A و... استفاده میشود. توجه کنید که این حروف در خروجی شما حتماً با حرف بزرگ نوشته شوند.
# مثال
## ورودی نمونه ۱
```
127 16
```
## خروجی نمونه ۱
```
7F
```
$F=15 \rightarrow 15 \times 16 ^ 0 + 7 \times 16^1 = 127$
آلفا قنطورس - C / JS
+ محدودیت زمان: ۲ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
یکی از اساتید دانشکده ریاضی که به پروژه Genealogy Mathematics خیلی علاقهمند است، بعد از مطالعه پیشینه اساتید خود و استادان آنها و... که در دیتابیس بزرگ این پروژه قرار دارند، در نهایت به ریاضیدان بزرگ کارل فریدریش گاوس به عنوان جد ریاضیاتی خود رسید که علاوه بر کارهای بسیار بزرگ در ریاضیات، داستانهایی در مورد محاسبه جمع اعداد ۱ تا ۱۰۰ با استفاده از فرمول را نیز به دوران مدرسه او نسبت میدهند. به این ترتیب این استاد دانشکده ریاضی، به اعدادی که از جمع اعداد ۱ تا $n$ ساخته شدهاند (مانند ۱، ۳، ۶، ۱۰، ۱۵ و...)، علاقهمند شد.
او نام این اعداد را اعداد خوب گذاشته و میخواهد که مقسومعلیههای مختلف آنها را بیابید؛ اما از آنجایی که بهشدت مشغول است، وقت برای نوشتن برنامه مورد نظر را ندارد و از شما خواسته است تا برنامهای بنویسید که یک عدد $k$ به عنوان ورودی از کاربر بگیرد و اولین عدد خوبی که حداقل $k$ مقسومعلیه طبیعی دارد را به عنوان خروجی بدهد.
# ورودی
ورودی شامل یک عدد طبیعی $k$ تعداد مقسومعلیههای عدد خوب مدنظر است.
$$1 \leq k \leq 300$$
# خروجی
خروجی برنامه شما، یک عدد طبیعی است. این عدد طبیعی باید اولین عدد طبیعی خوبی باشد که حداقل$k$ مقسومعلیه طبیعی دارد.
# مثال
## ورودی نمونه ۱
```
4
```
## خروجی نمونه ۱
```
6
```
### توضیح
اولین عدد خوبی که چهار مقسومعلیه طبیعی دارد، عدد ۶ است.
عدد خوب - Python / Ruby
+ محدودیت زمان: ۲ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
قلی که از برنامهنویس شدنش ناامید شده است، تصمیم گرفته مشغول به کاشیکاری ساختمان شود! قلی اهل نمکستان است و در نمکستان، تمام کاشیها به شکل مربع و با ابعاد ${\text{2}}^{k} \times {\text{2}}^{k}$ هستند. او باید قبل از شروع کار خود، کاشی های مورد نیازش را خریداری کند ولی همیشه در این کار دچار اشتباه میشود. به همین دلیل تصمیم گرفت برنامهای بنویسد که این محاسبات را برای او انجام دهد. اما از آنجایی که در برنامهنویسی به جایی نرسیده بود، نتوانسته است این مسئله را حل کند.
برنامهای بنویسید که با استفاده از آن، قلی بتواند تعداد کاشیهایی که از هر اندازه، برای اتاقی با ابعاد $m \times n$ نیاز است را پیدا کند؛ بطوریکه کمترین تعداد کاشی ممکن استفاده شود.
توجه کنید که کاشیها نباید از اتاق بیرون بزنند.
# ورودی
در تنها خط ورودی، به ترتیب $m$ و $n$ داده میشود.
$$1 \leq m, n \leq 10^{18}$$
# خروجی
در خروجی باید به ترتیب بزرگترین کاشی های مورد استفاده و تعداد آن ها را در هر خط چاپ کنید. (به مثالها توجه کنید)
# مثال
در خروجی باید به ترتیب بزرگترین کاشی های مورد استفاده و تعداد آن ها را در هر خط چاپ کنید. (به مثالها توجه کنید)
## ورودی نمونه ۱
```
6 4
```
## خروجی نمونه ۱
```
1 4*4 tiles
2 2*2 tiles
```
## ورودی نمونه ۲
```
9 5
```
## خروجی نمونه ۲
```
2 4*4 tiles
13 1*1 tiles
```
## ورودی نمونه 3
```
11 7
```
## خروجی نمونه 3
```
2 4*4 tiles
7 2*2 tiles
17 1*1 tiles
```
کاشیهای نمکستان - Go / Node.js
+ محدودیت زمان: ۲ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
کامبیز به تازگی وارد کسب و کار شریف فروش پروکسی شده است. او میخواهد اقدام به پخش آیپی پروکسیهای خود کند. اما از آنجا که نمیخواهد کسی به او شک کند نقطه ها را ازآیپیها پاک کرده است!
حال شما که یکی از مشتریان وفادار کامبیز هستید برنامهای بنویسید که رشته $s$ از اعداد را با نقطه گذاری درست به آیپیهای مجاز تبدیل کند.
آی پی ورژن $4$ یا $IPv4$ دارای فرمت $X.X.X.X$ است که در آن $X$ را $octet$ می نامیم که یک عدد صحیح بین $0$ تا $255$ است.
# ورودی
در تنها خط ورودی یک رشته میآید، که نشان دهندهی رشته ایست که به كامبيز گفته است.
$$4 \leq |s| \leq 20$$
$$0 \leq s_i \leq 9$$
# خروجی
خروجی برنامهی شما باید شامل آیپیهای مجاز در خطوط جداگانه باشد. اگر آیپی مجازی یافت نشد در خروجی چیزی چاپ نکنید. ترتیب خروجی ها اهمیتی ندارد.
# مثال
## ورودی نمونه ۱
```
7151
```
## خروجی نمونه ۱
```
7.1.5.1
```
## ورودی نمونه ۲
```
55011859
```
## خروجی نمونه ۲
```
5.50.118.59
55.0.118.59
```
**نکته:** آی پی هایی مانند 55.01.18.59 را که در آن ها قبل از اعداد رقم صفر آمده است، در نظر نگیرید.
مصائب کامبیز - C# - PHP
+ محدودیت زمان: ۲ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
ممد و رضا یک بازی دونفره با هم انجام میدهند. ممد $n$ نقطه روی صفحه میگذارد و از رضا میخواهد تعدادی از این نقطه هارا طوری بهم وصل کند که یک درخت دودویی کامل با ارتفاع $k$ شود. تنها شرط مسأله این است که یال های درخت نباید همدیگر را قطع کنند.
درخت دودویی، درختی است که هریک از راسهای آن دقیقا دقیقا دو یاصفر فرزند دارند. درخت دودویی کامل با ارتفاع $k$ درخت دودوییای است که تا ارتفاع $k-1$ همه راس های آن دقیقا دو فرزند دارند و راس های ارتفاع $k$ام هیچ فرزندی ندارند. راس های درخت دودویی را از 1 تا $2^k-1$ شماره گذاری میکنیم طوری که فرزندان راس $i$ام دو راس $2i$ و $2i+1$ باشند.
به رضا کمک کنید که یک نقاشی مناسب بکشد. شما باید به ازای هر نقطه بگویید چه راسی باید در آن قرار بگیرد، طوری که با کشیدن یال های درخت، یالها با هم تقاطع نداشته باشند.
# ورودی
در اولین خط ورودی اعداد $n$, $k$ آمدهاست. که به ترتیب تعداد نقطهها و ارتفاع درخت است، داده میشود.
در هرکدام از $n$ خط بعدی، در هر سطر دو عدد صحیح $x_i, y_i$ میآید که مختصات نقطه $i$ام در صفحه را نشان میدهد.
$$3 \le n \le 1\ 500$$
$${-10}^9 \le x_i, y_i \le 10^9$$
$$1 \le 2^k-1 \le n$$
# خروجی
در $n$ سطر خروجی و در سطر $i$ام شماره راسی را چاپ کنید که به نقطه $i$ام (به ترتیبی که در ورودی داده شده است) نسبت دادهایم و اگر هم این نقطه در بین راس های درختتان نیست، عدد ۰ را برایش چاپ نمایید.
اگر با نقطه های موجود نمیتوان هیچ درخت دودویی را کشید که یال هایش همدیگر را قطع نکنند، تنها در یک سطر عدد ۱- را چاپ کنید.
دقت نمایید که جوابها لزوما یکتا نیستند.
# مثال
## ورودی نمونه
```
9 2
100 300
200 300
500 301
200 200
300 201
400 203
500 206
300 101
402 100
```
## خروجی نمونه
```
4
1
0
2
0
3
6
5
7
```
نقاشی زیبای ممد برای این مثال برای فهم بهتر رضا از بازی :
**![](https://lh3.googleusercontent.com/pw/ACtC-3f4R52ooKPtu9N18r8DBjT_bvDih0bbwiZveevwucgkOvTmpHoTuKKr-DqX7Eh0nzZCeQxO2EtgTLIV8KAKowUqEq3Cn1gh6U5Rd5wk5WoYxqZC-Xcx0LzQ1jH7_2Y0aORiM4KMsciHRis7BQ-oxB9M=w799-h548-no)**
نقاشی - ++Java / C
+ محدودیت زمان: ۰.۵ ثانیه
+ محدودیت حافظه: ۵۰ مگابایت
------------------------
پویا یک برنامه نوشته که اعداد یک تا پنج هزار را در خطوط مختلف چاپ میکند، البته متاسفانه کاراکتر `\n` لپتاپش دچار مشکل شده و وقتی برنامه را اجرا کرد دید که برنامه تمامی اعداد ۱ تا $n$ را به ترتیب در یک خط چاپ کرده و در واقع یک عدد بسیار بزرگ تولید شده است (یعنی در خروجی عدد بسیار بزرگ ...۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳ چاپ شده بود).
حال برای او سوال شده که $k$امین رقم سمت چپ این عدد بسیار بزرگ چیست؟ به او کمک کنید تا جواب را پیدا کند.
# ورودی
در خط اول ورودی عدد $k$ داده میشود.
$$1 \leq k \leq 4000$$
# خروجی
در خروجی رقم $k$ام از چپ چاپ میشود.
# مثال
## ورودی نمونه ۱
```
5
```
## خروجی نمونه ۱
```
5
```
## ورودی نمونه ۲
```
10
```
## خروجی نمونه ۲
```
1
```
## ورودی نمونه ۳
```
11
```
## خروجی نمونه ۳
```
0
```
## ورودی نمونه ۴
```
29
```
## خروجی نمونه ۴
```
9
```
کلاس کد! - C++ / Perl
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
ولد یک ردیف رز دارد که هر کدام از آنها آخر هر ماه پژمرده شده و دوباره گل میدهد و هر بار که دوباره میروید میتواند سفید یا سیاه باشد. ولد که گلهای خود را خوب میشناسد میداند که اگر بعد از پایان دوره (منظور از دوره تعدادی ماه پشت سر هم است)، تعداد بارهایی که گل سفید داده است زوج باشد، آن رز بیبرکت است و باید آن را چید.
برای مثال اگر ولد ۲ گل داشته باشد و بخواهد به مدت ۳ ماه آنها را در نظر بگیرد و وضعیت زیر پیش بیاید:
![توضیح تصویر](https://cdn.discordapp.com/attachments/448820230177816576/637243408905273345/vlad.JPG)
در این صورت گل اول ولد دو بار سفید بوده، که عددی زوج است پس گل اول بی برکت است و باید چیده شود
اما گل دوم فقط یکبار سفید بوده که عددی فرد است، پس گلی خوب است.
حال به شما تعداد ماههای دوره و این که در هر ماه هر گل چه رنگی داشته، داده میشود؛ شما باید بگویید که در انتهای دوره هر گل بابرکت است یا خیر.
# ورودی
در خط اول به شما به ترتیب $n$ تعداد گلهای ولد و سپس $m$ تعداد ماههای دوره داده
میشود.
در $i$امین خط از $m$ خط بعدی، یک رشته به طول $n$ متشکل از `B` و `W` داده میشود که $j$امین عنصر آن برابر با مقدار خانه واقع در تقاطع سطر $i$ام و ستون $j$ام میباشد.
`W` به معنای سفید و
`B` به معنای سیاه است.
$$1 \leq n, m \leq 20$$
# خروجی
در خروجی از شما خواسته شده که یک ردیف $n$ تایی از کاراکترها چاپ کنید.
به ازای هر گلی که زوج بار سفید بوده کاراکتر `B` و به ازای بقیه آنها کاراکتر `F` را چاپ کنید.
# مثال
## ورودی نمونه ۱
```
3 2
WBW
BBW
```
## خروجی نمونه ۱
```
FBB
```
باغچه رز - Node.js / Swift
آریا میخواهد یک مزرعهی پلهای بخرد و در آن سماق کشت کند. وی پیش باجناقش میرود که به وی زمینی پیشنهاد دهد. اصغر عکسی از یک زمین به آریا نشان میدهد. حال آریا میخواهد ببیند که آیا این زمین را میتواند به مزرعه سماق تبدیل کند یا نه؟
سماق از آنجا که گیاه حساسی است فقط در شرایط خاصی میتواند کشت شود. تنها در زمینهایی که یک قله یا دره داشته باشد، میتوان سماق کاشت. هر زمین یک دنباله از $n$ پله است که هرکدام یک ارتفاع مشخص دارند و ارتفاع پله$i$ ام را با $a_i$ نشان میدهیم. یک زمین قله یا دره دارد اگر $i$ موجود باشد. برای وجود $i$ برقراری یکی از دو شرط زیر کافیست.
$$a_1 \leq a_2 \leq ... \leq a_i > ... > a_n$$
$$a_1 \geq a_2 \geq ... \geq a_i < ... < a_n$$
توجه کنید که $i$ میتواند برابر با $n$ باشد.
# ورودی
در خط اول ورودی عدد $n$ داده میشود و در خط دوم $a_1, ... ,a_n$ داده میشود.
$$1 \leq n \leq 20$$
$$-200 \leq a_i \leq 200$$
# خروجی
در تنها خط خروجی شما باید بسته به اینکه این مزرعه میتواند مزرعه سماق باشد یا نه ، `Yes` یا `No` را چاپ کنید.
# مثال
## ورودی نمونه ۱
```
5
1 2 4 3 1
```
## خروجی نمونه ۱
```
Yes
```
## ورودی نمونه ۲
```
4
1 2 3 4
```
## خروجی نمونه ۲
```
Yes
```
## ورودی نمونه ۳
```
8
1 9 8 7 5 3 2 4
```
## خروجی نمونه ۳
```
No
```
سماقفارم - C# / JS
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
ویتی برای تحلیل اطلاعات مربوط به یکی از پروژه هایش نیاز دارد گراف زیر را بکشد:
گراف ما از $n$ راس تشکیل شده است. روی هر یک از این راس ها یک عدد $a_i$ که یک عدد حسابی کوچکتر مساوی ۱۰۰۰۰۰ است نوشته شده است. دو راس $v$ و $u$ به هم وصل اند اگر و تنها اگر اختلاف $a_u$و $a_v$ دقیقا برابر ۱ باشد.
با گرفتن اعداد روی راس ها به ویتی کمک کنید تا بفهمد برای کشیدن گرافش به چند یال نیاز دارد.
# ورودی
در خط اول عدد $n$ داده میشود که $n$ تعداد راس هاست. در خط بعدی n عدد داده میشود که $i$امی آنها عدد روی راس $i$ را نشان می دهد.
$$1 \le n \le 50\ 000$$
$$1 \le a_i \le 100\ 000$$
# خروجی
خروجی برنامه ی شما شامل یک عدد است که تعداد یال های لازم برای کشیدن این گراف را نشان میدهد.
# مثال
## ورودی نمونه ۱
```
3
1 2 1
```
## خروجی نمونه ۱
```
2
```
بین راس شماره ۱ و ۲ و همچنین بین راس شماره ی ۲ و ۳ یال وجود دارد چون اختلاف عدد های روی آن ها (۱ و ۲) برابر ۱ است.
## ورودی نمونه ۲
```
12
1 2 4 5 4 5 5 6 7 7 7 7
```
## خروجی نمونه ۲
```
14
```
گراف کشی - Go / PHP
+ محدودیت زمان: ۲ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
علی به تازگی با برنامه نویسی آشنا شده است و برای همین ذوق خاصی دارد. از این رو میخواهد سیستمی طراحی کند که یک لیگ فوتبال را شبیه سازی میکند.
در این سیستم، دستورات مختلفی وجود دارند که به شرح زیر میباشند:
# **ساختن بازیکن جدید**
```
new player name price speed finishing defence
```
این دستور، بازیکنی با نام `name`، قیمت `price`، سرعت `speed`، قدرت تمامکنندگی `finishing` و دفاع `defence` میسازد.
توجه کنید که `name` از جنس رشته، و باقی پارامترها از جنس عدد میباشند.
هر بازیکن، یک شناسهی عددی دارد که با استفاده از آن میتوان به آن بازیکن دسترسی داشت، اولین بازیکنی که ساخته میشود شناسهی عددی ۱، دومین بازیکنی که ساخته میشود شناسهی عددی ۲ و $i$-امین بازیکنی که ساخته میشود شناسهی عددی $i$ دارد.
# **ساختن تیم جدید**
```
new team name money
```
با استفاده از این دستور، میتوانید یک تیم جدید با نام `name` و پول `money` بسازید. در صورتی که از قبل تیمی با اسم `name` وجود داشته باشد، تیم جدیدی ساخته **نمیشود**.
همچنین `name` از جنس رشته و `money` از جنس عدد میباشد.
هر تیم، یک شناسهی عددی دارد که با استفاده از آن میتوان به آن تیم دسترسی داشت، اولین تیمی که ساخته میشود شناسهی عددی ۱، دومین تیمی که ساخته میشود شناسهی عددی ۲ و $i$-امین تیمی که ساخته میشود شناسهی عددی $i$ دارد.
# **خرید بازیکن توسط تیم**
```
buy playerID teamID
```
با استفاده از این دستور، تیم با شناسهی عددی `teamID` بازیکن با شناسهی عددی `playerID` را میخرد.
همچنین همانطور که در بالا گفته شد، هر بازیکن یک قیمت (price) دارد و هر تیمی مقداری پول `money` دارد و هنگام خرید یک بازیکن باید تیم مورد نظر پول کافی را برای خرید بازیکن داشته باشد و در صورتی که خرید موفقیت آمیز باشد، از پول تیم، به میزان قیمت بازیکن مورد نظر کم میشود.
توجه کنید که در امر خرید بازیکن ممکن هست حالتهای مختلفی پیش بیاید:
+ در صورتی که بازیکنی با شناسهی عددی `playerID` وجود نداشته باشد، باید عبارت `player with the id playerID doesnt exist` را چاپ کنید.
+ در صورتی که تیمی با شناسهی عددی `teamID` وجود نداشته باشد، باید عبارت `team with the id teamID doesnt exist` را چاپ کنید.
+ در صورتی که تیم مورد نظر، پول کافی برای خرید بازیکن را نداشته باشد باید عبارت `the team cant afford to buy this player` را چاپ کنید.
+ در صورتی که بازیکن مورد نظر، در تیمی عضو باشد، باید عبارت `player already has a team` را چاپ کنید.
در صورتی که هیچکدام از حالت های بالا پیش نیایند، با موفقیت بازیکن مورد نظر خریداری میشود و باید عبارت `player added to the team succesfully` را چاپ کنید.
**توجه کنید** که ممکن است چندین مورد از حالتهای بالا پیش بیایند، در این صورت شما باید **اولین** حالتی که پیش میآید را در نظر گرفته و خروجی مورد نظر را چاپ کنید و از بقیه حالتها صرف نظر کنید.
# **فروش بازیکن**
```
sell playerID teamID
```
برای فروش بازیکن میتوان از دستور بالا استفاده کرد. با استفاده از این دستور، تیم با شناسهی عددی `teamID` بازیکن با شناسهی عددی `playerID` را به فروش میرساند.
همچنین موقع فروش بازیکن ممکن است حالتهای مختلفی پیش بیایند:
+ در صورتی که تیمی با شناسهی عددی `teamID` وجود نداشته باشد، باید عبارت `team doesnt exist` را چاپ کنید.
+ در صورتی که تیم مورد نظر وجود داشته باشد اما بازیکنی با شناسهی عددی `playerID` در آن تیم وجود نداشته باشد، باید عبارت `team doesnt have this player` را چاپ کنید.
در صورتی که حالتهای بالا پیش نیایند، یعنی با موفقیت بازیکن مورد نظر فروخته شده است و این بازیکن دیگر به تیمی تعلق ندارد (ممکن است در آینده توسط تیمی خریداری شود). در این حالت به اندازهی **قیمت بازیکن** فروخته شده، به پول تیم مورد نظر **افزوده میشود**. همچنین در این حالت باید عبارت `player sold succesfully` را چاپ کنید.
# **انجام بازی بین دو تیم**
```
match teamID1 teamID2
```
با استفاده از این دستور، دو تیم با شناسههای عددی `teamID1` و `teamID2` با یکدیگر بازی میکنند.
همچنین ممکن است در اجرای این دستور، حالتهای مختلفی پیش بیاید:
+ اگر حداقل یکی از دو تیم وجود نداشته باشد، باید عبارت `team doesnt exist` را چاپ کنید.
+ اگر دو تیم مورد نظر وجود داشتند، اما حداقل یکی از آنها تعداد بازیکنهایش **کمتر از ۱۱ نفر** باشد، بازی انجام نمیشود و باید عبارت `the game can not be held due to loss of the players` را چاپ کنید.
در صورتیکه هیچکدام از مشکلات بالا پیش نیاید، بازی با موفقیت انجام میشود.
در ابتدا برای توصیف روند بازی، نیاز به تعریف پارامتر **قدرت** برای هر تیم داریم.
قدرت تیم اول (تیم با شناسهی عددی `teamID1`) برابر است با مجموع **سرعت** و **تمامکنندگی** ۱۱ بازیکن اول آن تیم.
همچنین قدرت تیم دوم (تیم با شناسهی عددی `teamID2`) برابر است با مجموع **سرعت** و **دفاع** ۱۱ بازیکن اول آن تیم.
**توجه کنید** که ترتیب بازیکنها در یک تیم، همان ترتیب زمانی اضافه شدن آنها به تیم میباشد.
در صورتی که قدرت دو تیم باهم برابر نباشد، تیمی برندهی بازی میشود که **قدرت بیشتری** دارد و به تعداد بردهای تیم برنده یک واحد اضافه میشود و به تعداد باختهای تیم بازنده نیز یک واحد اضافه میشود و به تیم برنده، به عنوان جایزه **۱۰۰۰ واحد** پول داده میشود. در صورتی که قدرت دو تیم **برابر باشد**، بازی مساوی میشود و تعداد مساویهای هر دو تیم یک واحد افزایش پیدا میکند.
# **نمایش جدول تیمها**
```
rank
```
با استفاده از دستور بالا، باید جدول رتبهبندی تیمها را چاپ کنید.
شما باید تیمها را بر اساس تعداد بردها (هر تیمی که برد بیشتری داشته باشد رتبه بهتری دارد)، و در صورت برابری تعداد بردها، بر اساس تعداد باختهای کمتر مرتب کنید (اگر دو تیم بردهای برابری داشته باشند، تیم با باخت کمتر رتبه بهتری میگیرد) و به صورت زیر نام آنها را چاپ کنید:
```
1. teamName[0]
2. teamName[1]
...
```
که در آن `teamName[0]` تیم با رتبهی ۱، `teamName[1]` تیم با رتبهی ۲ و... میباشند.
توجه کنید که تعداد مساویها مهم نمیباشد و همچنین اگر دو تیم تعداد باختها و بردهایشان برابر بود، تیمی که شناسهی عددی کمتری دارد رتبهی بهتری میگیرد.
# **پایان لیگ**
```
end
```
در انتها، پس از تمام شدن لیگ، عبارت بالا در خروجی داده میشود و به این معنی است که ورودیها تمام شده است و برنامه شما نیز پایان مییابد.
# ورودی
ورودی شامل چندین خط میباشد که در هر خط یکی از دستوراتی که در صورت سوال گفته شد، داده میشود.
همچنین در خط آخر ورودی، دستور `end` داده میشود.
**توجه کنید** که ممکن است در ورودی داده شده، بعضی از خط ها خالی باشند و هیچ دستوری در آنها نباشد.
# خروجی
پس از اجرای برخی از دستورها، باید خروجیهایی را چاپ کنید که در توضیحات هر دستور در صورت نیاز گفته شده است. توجه کنید که هر خروجی باید در یک خط چاپ شود و از چاپ تمامی خروجیها در یک خط پرهیز کنید.
# مثال
## ورودی نمونه ۱
```
new player ArshiA 1 2 3 4
new player sadegh 1 2 3 4
new player haniye 1 2 3 4
new player fateme 1 2 3 4
new player qorban 1 2 3 4
new player abbasi 1 2 3 4
new player alikmr 1 2 3 4
new player sadegh 1 2 3 4
new player hamide 1 2 3 4
new player karane 1 2 3 4
new player vanaki 1 2 3 4
new player Ars 1 100 100 100
new player sad 1 100 100 100
new player han 1 100 100 100
new player fat 1 100 100 100
new player qor 1 100 100 100
new player abb 1 100 100 100
new player ali 1 100 100 100
new player sad 1 100 100 100
new player ham 1 100 100 100
new player kar 1 100 100 100
new player van 1 100 100 100
new team t2 100
new team t1 100
buy 12 1
buy 13 1
buy 14 1
buy 15 1
buy 16 1
buy 17 1
buy 18 1
buy 19 1
buy 20 1
buy 21 1
buy 22 1
buy 1 2
buy 2 2
buy 3 2
buy 4 2
buy 5 2
buy 6 2
buy 7 2
buy 8 2
buy 9 2
buy 10 2
buy 11 2
match 1 2
rank
end
```
## خروجی نمونه ۱
```
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
player added to the team succesfully
1. t2
2. t1
```
ایزی لیگ - Python / Java
+ محدودیت زمان: ۰.۵ ثانیه
+ محدودیت حافظه: ۵۰ مگابایت
----------
یک عدد اوّل را $k$-خفن میگوییم هر گاه در مبنای $k$ از دو طرف به یک شکل خوانده شود. (عددی مانند ۱۳۷۳۱ در مبنای ۱۰ از دو طرف به یک صورت خوانده میشود.) ویتی از شما میخواهد $n$امین عدد اوّل $k$-خفن را بیابید.
# ورودی
ورودی تنها شامل یک خط است که در آن دو عدد طبیعی $n$ و $k$ با فاصله از هم آمدهاند.
$$2 \leq k \leq 16$$
$$1 \leq n \leq 450$$
میدانیم که اعداد $n$ و $k$ به گونهای داده میشوند که خروجی کوچک تر از $5\times10^6$ شود.
# خروجی
خروجی برنامهی شما باید شامل ۱ عدد باشد که $n$امین عدد اول $k$-خفن است.
# مثال
## ورودی نمونه ۱
```
8 10
```
## خروجی نمونه ۱
```
151
```
هشت عدد اوّل ۱۰-خفن به ترتیب برابرند با: ۲، ۳، ۵، ۷، ۱۱، ۱۰۱، ۱۳۱، ۱۵۱.
سایر اعداد اوّل بین این اعداد ۱۰-خفن نیستند.
## ورودی نمونه ۲
```
4 2
```
## خروجی نمونه ۲
```
17
```
چهار عدد اول ۲-خفن به ترتیب برابرند با: ۳، ۵، ۷، ۱۷. این اعداد در مبنای ۲ به ترتیب ۱۱، ۱۰۱، ۱۱۱، ۱۰۰۰۱ هستند که از دو طرف به یک شکل خوانده میشوند، اعداد اول ۲ ، ۱۱ و ۱۳ در مبنای ۲ به ترتیب ۱۰، ۱۰۱۱ و ۱۱۰۱ هستند که از دو طرف به یک شکل نیستند.
کدمستر - Perl / Java
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
آقا حسین، یکی از دانشجویان قوی و پر تلاش رشته کامپیوتر دانشگاه دورقوزآباد، مشغول تمرین برنامه نویسی به کمکِ الگوریتم های بازگشتی بود که با سؤال جالبی برخورد کرد. حسین آقا که هنوز با مفاهیم آرایه و رشته آشنایی نداشت، تصمیم گرفت مرز های علم و دانش را جا به جا کرده و هر طور که ممکن است این سوال را حل کند.
> برنامه ای بنویسید که تمامِ زیر مجموعه های مجموعه اعداد ۱ تا $n$ را به ترتیبی مانند مثال های داده شده، در خروجی چاپ کند.
آقا حسین پس از ساعت ها تلاشِ پیاپی، موفق به حل این سوال نشد، حال این شما و این سوالِ آقا حسین.
# ورودی
ورودی تنها شامل یک خط است که در آن عدد طبیعی $n$ آمده است.
$$1 \le n \le 20$$
# خروجی
هر خط از خروجی شامل یک زیر مجموعه از مجموعه اعداد ۱ تا $n$ بوده و اعضای مجموعه با یک فاصله از یک دیگر چاپ خواهند شد.
# مثال
## ورودی نمونه ۱
```
3
```
## خروجی نمونه ۱
```
{ 1 2 3 }
{ 1 2 }
{ 1 3 }
{ 1 }
{ 2 3 }
{ 2 }
{ 3 }
{ }
```
## ورودی نمونه ۲
```
4
```
## خروجی نمونه ۲
```
{ 1 2 3 4 }
{ 1 2 3 }
{ 1 2 4 }
{ 1 2 }
{ 1 3 4 }
{ 1 3 }
{ 1 4 }
{ 1 }
{ 2 3 4 }
{ 2 3 }
{ 2 4 }
{ 2 }
{ 3 4 }
{ 3 }
{ 4 }
{ }
```
مجموعه بازی ۲! - #C++ / C
+ محدودیت زمان: ۰.۵ ثانیه
+ محدودیت حافظه: ۵۰ مگابایت
----------
پشنج میخواهد در هزینههایش صرفهجویی کند؛ او برای این کار، مسیرهایی که در طول روز از آنها عبور میکند را در نظر میگیرد و سعی میکند آنها را مرتب کند.
او محلهایی که در آنها رفت و آمد دارد را با توجه به مسافت آن محل تا خانهاش شمارهگذاری کرده و از شما میخواهد که هر بار دو محل را به عنوان یک زوج مرتب در نظر بگیرید و این زوج مرتبها را با توجه به اینکه اختلاف مسافت کدام یک کمتر است مرتب کنید. فرض بر این است که پشنج هر روز مسیر سرراستی را طی میکند.
# ورودی
در خط اول $n$ که تعداد محلهاست داده میشود و در خط بعد $n$ عدد در یک خط به شما داده میشود که عدد $i$ام نشان دهنده $a_i$ است که نمایانگر مسافت محلهاست. فاصله بین دو محل قدر مطلق اختلاف مسافت محلهاست. این نکته را در نظر داشته باشید که در صورتی که دو فاصله $|x-y|$ و $|z-t|$ با هم برابر بود، زوجی اولویت دارد که مسافت یکی از تکمحلهای این زوج از هر دو تکمحل دیگر کمتر باشد. به طور مثال اگر $x$ از $z$ و $t$ کوچکتر بود، زوج $(x, y)$ اولویت دارد.
**توجه کنید که ممکن است مسافت یک محل چندین بار در ورودی بیاید و شما نباید مقدار تکراری را در نظر بگیرید؛ بنابراین باید از هر مقدار فقط یکی را در نظر بگیرید.**
$$1 \leq n \leq 90$$
$$-2\ 000 \leq a_i \leq 2\ 000$$
# خروجی
شما باید در ${m \choose 2}$ خط خروجی، زوج مرتب $[x, y]$ را خروجی بدهید، به طوری که $x < y$. این زوج مرتبها بر اساس قدرمطلق اختلاف $x$ و $y$ مرتب شدهاند. توجه کنید که $m$ برابر با تعداد اعداد متمایز آرایه $a$ است. **در صورتی که اختلافها برابر بود، بر اساس مقدار $x$ مرتب کنید.**
# مثال
## ورودی نمونه ۱
```
4
-1 -2 3 6
```
## خروجی نمونه ۱
```
[-2, -1]
[3, 6]
[-1, 3]
[-2, 3]
[-1, 6]
[-2, 6]
```
به طور مثال، در اینجا، اگر اعداد را مرتبشده در نظر بگیریم، بازه اعداد به صورت رو به رو خواهد بود:
$$6 ,3 ,-1 ,-2$$
حال این بازهها که سر و ته هر یک زوج مرتبی از اعداد بالاست را در نظر بگیرید:
$$[6 , 3] ,[6 ,-1] ,[3 ,-1] ,[6 ,-2] ,[3 ,-2] ,[-1, -2]$$
اختلاف سر و ته هر بازه به صورت رو به رو خواهد بود:
$$3 ,7 ,4 ,8 ,5 ,1$$
اگر این بازهها را بر اساس اختلاف سر و ته هر بازه مرتب کنیم به خروجی میرسیم.
## ورودی نمونه ۲
```
7
22 43 32 6 30 41 43
```
## خروجی نمونه ۲
```
[30, 32]
[41, 43]
[22, 30]
[32, 41]
[22, 32]
[30, 41]
[32, 43]
[30, 43]
[6, 22]
[22, 41]
[22, 43]
[6, 30]
[6, 32]
[6, 41]
[6, 43]
```
در این ورودی فقط یکی از ۴۳ ها در نظر گرفته شده است.
پشنج پلاس - Go / Ruby
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۰ مگابایت
----------
ماجرا از این قرار است که امیر حسین اعداد اول را خیلی دوست دارد... .
وی در خانهی $(a,b)$ یک جدول $n \times n$ قرار گرفته و میخواهد به خانهی $(x,y)$ برود. از شما کمک میخواهد تا یک مسیر مناسب از نقطهی شروع به نقطهی هدف را به او نشان دهید. این مسیر باید شرایط زیر را داشته باشد:
+ داخل هر خانه از جدول، عددی نوشته شده است و امیرحسین فقط از خانهای عبور میکند که عدد روی آن اول باشد.
+ هنگامی که امیرحسین روی یکی از خانههای جدول ایستاده است، در حرکت بعدی فقط میتواند به یکی از خانههای مجاور ضلعیاش برود.(بالا، پایین ، چپ یا راست)
+ در مسیری که وی طی میکند، نباید هیچ یک از خانههای جدول را دوبار ملاقات کند.
# ورودی
ابتدا عدد $t$ که نشان دهندهی تعداد تستهای سوال است داده میشود.
$$1 \le t \le 100$$
به ازای هر تست:
عدد $n$ به عنوان سایز ماتریس و سپس $n^2$ عدد که نشان دهندهی مقادیر خانههای ماتریس هستند وارد میشوند.
$$1 \le n \le 100$$
$$1 \le a_{i,j} \le 10^9$$
سپس در یک خط، مختصات شروع و در خط بعدی مختصات پایان داده میشود.(برای فهم بهتر سوال، حتماً مثال را ببینید.)
تضمین می شود:
+ محتویات خانهی $(a,b)$ و خانهی $(x,y)$ حتما اعدادی اول هستند.
+ جواب سوال یکتاست (دو مسیر مناسب وجود نداشته باشد).
+ خانهی شروع حداکثر یک همسایهی اول دارد و هر یک از خانههای مسیر حداکثر دو همسایهی اول دارند.(سعی کنید به عنوان تمرین بیشتر، سوال را در حالتی حل کنید که مسیرهای انحرافی نیز وجود داشته باشند.)
# خروجی
در $t$ خط به ازای هر تست، اگر مسیر مناسبی با شرایط گفته شده از نقطهی آغاز به نقطهی هدف وجود دارد، آن مسیر را با کاراکترهای $U,D,L,R$ نشان دهید و در غیر اینصورت "!No Monaseb Masir" را چاپ کنید.
# مثال
## ورودی نمونه
```
3
4
5 2 6 11
4 5 13 8
7 10 3 7
2 13 15 11
0 0
3 3
3
5 2 7
8 4 1
7 5 3
2 0
0 1
6
15 2 3 5 11 77
14 5 1 4 2 1
12 7 13 6 2 4
6 8 76 9 7 95
5 11 13 7 5 8
2 96 10 4 100 17
2 2
5 0
```
## خروجی نمونه
```
RDRDRD
No Monaseb Masir!
LUURRRDDDDLLLLD
```
مسیر اول - Swift / C
+ محدودیت زمان: ۱ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
علی که در روز پیش توانسته بود یک سیستم برای شبیه سازی لیگ فوتبال طراحی کند، حسابی مغرور شده است و به تواناییهای خود میبالد. حال میخواهد یک سیستم دیگر برای اعتبارسنجی رشتهها پیاده سازی کند، اما به دلیل خستگی زیاد پروژهی قبلی، نمیخواهد سیستمش زیادی پیچیده باشد!
این سیستم در ابتدا یک عدد به عنوان **میزان خوبی** دارد که مقدارش برابر با **صفر** میباشد.
همچنین برای شروع کار، یک رشته متشکل از حروف **کوچک و بزرگ انگلیسی** و کاراکترهای `#` و `!` و `?` و `.` به طول حداکثر ۱۰۰۰ داده میشود. همچنین توجه کنید که رشته شامل فاصله (space) **نمیباشد**. این رشته را **رشتهی مشکوک** مینامیم.
حال عملیاتهایی وجود دارند که بر روی این رشته اعمال میشوند و با آن میتوان میزان اعتبار رشته را تشخیص داد.
# **دستور copy**
```
copy key count
```
در این دستور، `key` یک رشته مشتکل از حروف **کوچک و بزرگ انگلیسی** و کاراکترهای `#` و `!` و `?` و `.` میباشد و `count` یک عدد طبیعی میباشد.
با استفاده از این دستور، شما باید رشتهی `key` را به اندازهی `count` مرتبه به خود بچسبانید (یعنی اگر `key` برابر با `ab` باشد و `count` برابر با ۳ باشد، رشتهی به دست آمده برابر با `ababab` میشود) و سپس اگر رشتهی نهایی، طولش $k$ باشد، باید $k$ حرف اول (سمت چپ) رشتهی مشکوک را حذف کنید و این رشتهی جدید را به ابتدای رشتهی مشکوک بچسبانید.
همچنین تضمین میشود در صورتی که `key` را به اندازهی `count` مرتبه به خودش بچسبانیم، طولش کمتر مساوی طول رشتهی مشکوک باشد.
برای مثال اگر رشتهی مشکوک برابر با `aaabbbccc` باشد و دستور زیر داده شود:
```
copy zx 2
```
رشتهی مشکوک برابر با `zxzxbbccc` میشود.
# **دستور compare**
```
compare key
```
در این دستور، `key` یک رشته مشتکل از حروف **کوچک و بزرگ انگلیسی** و کاراکترهای `#` و `!` و `?` و `.` میباشد.
شما باید رشتهی مشکوک را با رشتهی `key` مقایسه کنید و در صورتی که این دو رشته با یکدیگر برابر باشند، **میزان خوبی** به اندازهی **یک واحد** افزایش پیدا میکند و در غیر اینصورت تغییری نمیکند.
# **دستور substr**
```
substr key count
```
در این دستور، `key` یک رشته مشتکل از حروف **کوچک و بزرگ انگلیسی** و کاراکترهای `#` و `!` و `?` و `.` میباشد و `count` یک عدد طبیعی میباشد.
در صورتی که رشتهی `key` **دقیقا** `count` مرتبه به عنوان زیررشته در رشتهی مشکوک ظاهر شده باشد، **میزان خوبی** به اندازهی **یک واحد** افزایش پیدا میکند و در غیر اینصورت تغییری نمیکند.
# **دستور attach**
```
attach key count str
```
در این دستور، `key` و `str` یک رشته مشتکل از حروف **کوچک و بزرگ انگلیسی** و کاراکترهای `#` و `!` و `?` و `.` میباشند و `count` یک عدد طبیعی میباشد.
شما باید رشتهی `str` را به انتهای رشتهی `key` بچسبانید و در صورتی که رشتهی بدست آمده **دقیقا** `count` مرتبه به عنوان زیررشته در رشتهی مشکوک ظاهر شده باشد، **میزان خوبی** به اندازهی **یک واحد** افزایش پیدا میکند و در غیر اینصورت تغییری نمیکند.
برای مثال اگر رشتهی مشکوک برابر با `abc` باشد و دستور زیر داده شود، یک واحد به میزان خوبی افزوده میشود:
```
attach a 1 b
```
# **دستور length**
```
length count
```
در این دستور `count` یک عدد طبیعی میباشد. در صورتی که طول رشتهی مشکوک **دقیقا** برابر با `count` باشد، **میزان خوبی** به اندازهی **یک واحد** افزایش پیدا میکند و در غیر اینصورت تغییری نمیکند.
# **انتهای برنامه**
همچنین هنگامی که تمامی دستورها داده شوند، در انتها یک دستور به صورت `Is it right or not?` داده میشود که از شما میپرسد آیا رشتهی مشکوک دارای اعتبار میباشد یا خیر.
در صورتی که **میزان خوبی** بیشتر و یا مساوی **نصف** تعداد دستورات داده شده باشد (دستورات `copy` و `compare` و `substr` و `attach` و `length`)، رشته دارای اعتبار است و باید `Eyval` را چاپ کنید و در غیر اینصورت دارای اعتبار نمیباشد و باید `HeifShod` را چاپ کنید.
# ورودی
در خط اول ورودی، رشتهی مشکوک داده میشود که متشکل از حروف **کوچک و بزرگ انگلیسی** و کاراکترهای `#` و `!` و `?` و `.` میباشد و طول آن حداکثر ۱۰۰۰ است.
در خطوط بعدی، در هر خط یکی از دستوراتی که در صورت سوال آمدهاند داده میشود. تعداد این دستورها کمتر از ۱۰۰۰ میباشد.
در خط نهایی، یک عبارت با عنوان `Is it right or not?` میآید که توضیح آن در صورت سوال داده شده است.
# خروجی
در تنها خط خروجی، در صورتی که رشتهی مشکوک دارای اعتبار باشد باید عبارت `Eyval` و در غیر اینصورت عبارت `HeifShod` را چاپ کنید.
# مثال
## ورودی نمونه
```
eyval!inTamrinkheiliSadast.Hooorrraaaaa
copy hi 3
compare hihihiinTamrinkheiliSadast.Hooorrraaaaa
substr aaa 3
attach hi 2 in
length 39
Is it right or not?
```
## خروجی نمونه
```
Eyval
```
در این مثال، فقط در هنگام اجرای دستور `attach` میزان خوبی اضافه نمیشود.